2016-02-04 2 views
0

Я перешел с Windows Phone 8 Silverlight на Windows Phone 8.1 WinRT. HttpWebRquest и WebClient используется в WP 8 Silverlight. Wp 8,0 Silverlight, я использовал WebClient ..Отправить запрос и получить ответ в Windows Phone 8.1 WinRT

webClntRech.DownloadStringAsync(new Uri("http://wallet.net.co.in/services/bi/rechargedownload/01/0001/" + DateTime.Now.ToString("ddMMyyhhmmssms") + "/504434")); 

      webClntRech.DownloadStringCompleted += webClntRech_DownloadStringCompleted; 

Я хочу схожую функциональность в WinRT 8.1

Я не могу найти WebClient в WinRT. Я наткнулся на HttpClient.

В соответствии с требованием мы должны внедрить метод POST для всех запросов. Я последовал за несколько примеров, и получил это code..which не работает ..

HttpClient client = new HttpClient(); 
     string ResponceResult = await client.PostAsync("http://wallet.net.co.in/services/bi/rechargedownload/01/0001/" + DateTime.Now.ToString("ddMMyyhhmmssms") + "/504434",); 

MessageDialog m = new MessageDialog(ResponceResult); 
     await m.ShowAsync(); 

Ответ будет в Json формате.

Я не знаком с параметром HTTP-содержимого PostAynsc() Метод.

Прошел через несколько ссылок. Невозможно получить помощь. Как реализовать ..

+0

1-й ваш URL-адрес недействителен. Сначала проверьте свой URL-адрес. –

+0

[Как подключиться к HTTP-серверу с использованием Windows.Web.Http.HttpClient (XAML) ] (https://msdn.microsoft.com/en-us/library/windows/apps/xaml/dn440594.aspx) –

+0

@ Umar Ali ссылка четко объясняет запрос метода Get. Мое требование - использовать только метод Post. . Спасибо –

ответ

0

Я использую этот полезный метод для POST JSON

async void PostJson(string URL, string json) 
{ 
    HttpClient httpClient = new HttpClient(); 
    httpClient.Timeout = TimeSpan.FromMinutes(5); 
    httpClient.MaxResponseContentBufferSize = 25600000; 

    httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json"); 
    httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/json"); 

    HttpResponseMessage response = await httpClient.PostAsync(new Uri(URL), new StringContent(json, Encoding.UTF8, "application/json")); 
    response.EnsureSuccessStatusCode(); 
    string responseAsText = await response.Content.ReadAsStringAsync(); 
    Dictionary<string, string> responseJson = JsonConvert.DeserializeObject<Dictionary<string, string>>(responseAsText); 
} 

Update

Для того, чтобы просто получить JSON из URL, вы можете использовать следующий код:

var httpClient = new HttpClient(); 
var response = await httpClient.GetStringAsync(url); 

// Deserialize JSON 
MyObject myObject = JsonConvert.DeserializeObject<MyObject>(response); 
+0

проверить мой обновленный вопрос .. –

+0

Я обновил ответ. –

+0

Для параметра Url Parameter, я передам URL.for Json параметр .. что я должен пройти .. @ M.Hassan –

0

я использовал что-то подобное с HttpClient

public async Task<string> httpClient(object param, Uri targetUri, string key) 
    { 
     using(HttpClient client = new HttpClient()) 
     { 
      string jsonData = JsonConvert.SerializeObject(param); 
      FormUrlEncodedContent content = new FormUrlEncodedContent(new[] 
      { 
       new KeyValuePair<string, string>(key, jsonData) 
      }); 
      HttpResponseMessage response = await client.PostAsync(targetUri, content); 
      string result = await response.Content.ReadAsStringAsync(); 
      return result; 
     } 
    } 

вы можете модифицировать это любым способом вы хотите

Я использовал Task вместо void, поэтому я могу дождаться результата, а позже я отделил его от другого метода

Смежные вопросы