2016-02-04 118 views
0

我已經從Windows Phone 8 Silverlight遷移到Windows Phone 8.1 WinRT。 HttpWebRquestWebClient用於WP 8 Silverlight。 Wp的8.0 Silverlight中,我已經使用Web客戶端..發送請求並獲取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 ​​

類似的功能在WinRT中我找不到WebClient。我遇到了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您的網址無效首先檢查您的網址 –

+0

[如何使用Windows.Web.Http.HttpClient(XAML)連接到HTTP服務器) ](https://msdn.microsoft.com/en-us/library/windows/apps/xaml/dn440594.aspx) –

+0

@Umar Ali該鏈接清楚地說明了獲取方法請求..我的要求是僅使用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); 
} 

更新

爲了剛剛從URL獲取JSON,您可以使用下面的代碼:

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

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

檢查我更新的問題。 –

+0

我已更新答案。 –

+0

對於Url參數,我將通過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而不是無效,所以我可以等待結果,後來我用另一種方法反序列化它

相關問題