2016-11-08 159 views
0

我正在编写UWP应用程序。POST请求UWP

我需要使用JSON发送POST请求到服务器

这里是我的下载JSON和写入值码:

public async void AllOrders_down() 
    { 


     string url = "http://api.simplegames.com.ua/index.php/?wc_orders=all_orders"; 

     var json = await FetchAsync(url); 


     List<RootObject> rootObjectData = JsonConvert.DeserializeObject<List<RootObject>>(json); 

     OrdersList = new List<RootObject>(rootObjectData); 


    } 
    public async Task<string> FetchAsync(string url) 
    { 
     string jsonString; 

     using (var httpClient = new System.Net.Http.HttpClient()) 
     { 
      var stream = await httpClient.GetStreamAsync(url); 
      StreamReader reader = new StreamReader(stream); 
      jsonString = reader.ReadToEnd(); 
     } 

     return jsonString; 
    } 

我需要如何与此JSON服务器发送POST请求?

感谢您的帮助。

回答

1

您应该使用httpClient.PostAsync()

+0

好吧,但我需要编写代码,从这个'var json = await FetchAsync(url);'并通过POST请求发送json? – Eugene

+0

这样的事情? (var client = new HttpClient()) var content = new StringContent(json,Encoding.UTF8,“application/json”); var result = client.PostAsync(url,content).Result; }' – Eugene

+1

更好地为'async/await'方法调用'var result = await client.PostAsync(url,content);'。 – toadflakz

2

以下是我在UWP应用程序中使用的Post请求示例。

using (HttpClient httpClient = new HttpClient()) 
{ 
    httpClient.BaseAddress = new Uri(@"http://test.com/"); 
    httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
    httpClient.DefaultRequestHeaders.AcceptEncoding.Add(new StringWithQualityHeaderValue("utf-8")); 

    string endpoint = @"/api/testendpoint"; 

    try 
    { 
     HttpContent content = new StringContent(JsonConvert.SerializeObject(yourPocoHere), Encoding.UTF8, "application/json"); 
     HttpResponseMessage response = await httpClient.PostAsync(endpoint, content); 

     if (response.IsSuccessStatusCode) 
     { 
      string jsonResponse = await response.Content.ReadAsStringAsync(); 
      //do something with json response here 
     } 
    } 
    catch (Exception) 
    { 
     //Could not connect to server 
     //Use more specific exception handling, this is just an example 
    } 
} 
+0

我尝试你的代码。 后端dev说他看到空行,但没有收到数据。 – Eugene

+0

有趣。您收到了您尝试访问的端点的200响应? –

+0

是的。 我想我知道问题在哪里。 我下载json并将其写入'var json' async。 当我设置断点时,我看到'json'值= null。 – Eugene