C# .NET 4.5.1 Web API 异步 POST 请求获取 JSON 数据
以下是一种实现方式:
public async Task<HttpResponseMessage> GetJsonDataFromServerB()
{
HttpResponseMessage response = null;
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri('http://serverB/api/');
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue('application/json'));
// 构造请求数据
string requestData = '{"param1":"value1","param2":"value2"}';
StringContent content = new StringContent(requestData, Encoding.UTF8, 'application/json');
// 发送POST请求并获取响应数据
response = await client.PostAsync('GetData', content);
if (response.IsSuccessStatusCode)
{
// 解析响应数据
string responseData = await response.Content.ReadAsStringAsync();
JObject jsonData = JObject.Parse(responseData);
// 构造返回结果
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
result.Content = new StringContent(jsonData.ToString(), Encoding.UTF8, 'application/json');
return result;
}
else
{
// 构造返回错误信息
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.InternalServerError);
result.Content = new StringContent('Error: ' + response.StatusCode.ToString(), Encoding.UTF8, 'text/plain');
return result;
}
}
}
以上代码中,首先创建了一个 HttpClient 对象,并设置了请求头信息。然后构造了一个 POST 请求的请求数据,并使用 PostAsync 方法发送请求。在获取到响应数据后,判断响应的状态码是否为成功,并解析响应数据。最后根据解析得到的数据构造了一个 HttpResponseMessage 对象并返回。如果请求失败,则构造了一个包含错误信息的 HttpResponseMessage 对象并返回。
原文地址: https://www.cveoy.top/t/topic/mm3P 著作权归作者所有。请勿转载和采集!