POST请求UWP
问题描述:
我正在编写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请求?
感谢您的帮助。
答
您应该使用httpClient.PostAsync()
。
答
以下是我在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
}
}
好吧,但我需要编写代码,从这个'var json = await FetchAsync(url);'并通过POST请求发送json? – Eugene
这样的事情? (var client = new HttpClient()) var content = new StringContent(json,Encoding.UTF8,“application/json”); var result = client.PostAsync(url,content).Result; }' – Eugene
更好地为'async/await'方法调用'var result = await client.PostAsync(url,content);'。 – toadflakz