C# .NET 4.5.1 Web API 反向代理异步 POST 请求示例
以下是一个示例代码,实现了反向代理异步 POST,并返回 HttpResponseMessage 对象给客户端:
public HttpResponseMessage Post([FromBody] JObject data)
{
var targetUrl = 'http://example.com/api/endpoint'; // 目标 API 的 URL
var proxyRequest = CreateProxyRequest(targetUrl, data); // 创建代理请求
var proxyResponse = GetProxyResponseAsync(proxyRequest).Result; // 获取代理响应
return proxyResponse;
}
private HttpRequestMessage CreateProxyRequest(string targetUrl, JObject data)
{
var proxyRequest = new HttpRequestMessage(HttpMethod.Post, targetUrl);
proxyRequest.Content = new StringContent(data.ToString(), Encoding.UTF8, 'application/json');
return proxyRequest;
}
private async Task<HttpResponseMessage> GetProxyResponseAsync(HttpRequestMessage proxyRequest)
{
var proxyHandler = new HttpClientHandler();
var proxyClient = new HttpClient(proxyHandler);
var proxyResponse = await proxyClient.SendAsync(proxyRequest);
return proxyResponse;
}
注意事项:
- 由于涉及到异步操作,需要使用 async/await 语法;
- 在创建代理请求时,需要将请求数据(JObject)序列化为 JSON 字符串,并设置请求头的 Content-Type 为 application/json;
- 在获取代理响应时,需要使用 HttpClient 类发送异步请求,并返回 HttpResponseMessage 对象。
原文地址: https://www.cveoy.top/t/topic/mm1R 著作权归作者所有。请勿转载和采集!