c# webapi net451 使用post异步方法从目标服务器B获取json数据后返回HttpResponseMessage对象给客户端
以下是一种实现方式:
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/12z 著作权归作者所有。请勿转载和采集!