以下是一种实现方式:

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对象并返回。

c# webapi net451 使用post异步方法从目标服务器B获取json数据后返回HttpResponseMessage对象给客户端

原文地址: https://www.cveoy.top/t/topic/12z 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录