HttpClient.PostAsync第二個參數設置HttpContent 發送Json數據。
需要這是這個content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
如果這是這樣 : client.DefaultRequestHeaders.Add("ContentType", "application/json"); 設置去請求有時候會不成功,服務端不認。說你mediaType不正確。
public async static Task<string> SendRequest(string url, string data)
{
var responseJson = "";
var client = new HttpClient();
try
{
client.Timeout = new TimeSpan(1, 0, 0, 0, 0);
client.DefaultRequestHeaders.Add("Connection", "Keep-Alive");
client.DefaultRequestHeaders.Add("Keep-Alive", "timeout=600");
client.DefaultRequestHeaders.Add("ContentType", "application/json");
client.DefaultRequestHeaders.Add("Accept", "*/*");
HttpContent content = new StringContent(data);
content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
var Result =await client.PostAsync(url, content);
if (Result.StatusCode == System.Net.HttpStatusCode.OK)
{
responseJson = await Result.Content.ReadAsStringAsync();
}
else
{
throw new Exception("Request Url is " + url+ " Response is " + Result.StatusCode);
}
if (string.IsNullOrEmpty(responseJson))
{
throw new Exception("Request Url is " + url + " Response is " + Result.StatusCode);
}
}
catch (Exception ex)
{
throw;
}
finally
{
client.Dispose();
}
return await Task.FromResult(responseJson);
}
