C# .NET 4.5.1 WebAPI 反向代理异步 POST 请求示例
下面是一个使用 C#、.NET 4.5.1 和 WebAPI 的反向代理异步 POST 请求示例代码:
using System;
using System.Net.Http;
using System.Threading.Tasks;
using System.Web.Http;
namespace ReverseProxy
{
public class ProxyController : ApiController
{
private static readonly HttpClient client = new HttpClient();
public async Task<IHttpActionResult> Post(string url, [FromBody] object data)
{
try
{
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, url);
request.Content = new StringContent(data.ToString(), System.Text.Encoding.UTF8, 'application/json');
HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
return Ok(responseBody);
}
catch (Exception ex)
{
return InternalServerError(ex);
}
}
}
}
在上面的代码中,我们创建了一个名为 ProxyController 的 WebAPI 控制器,它具有一个名为 Post 的异步方法。该方法接受两个参数:url 和 data。url 是要代理的目标 URL,data 是 POST 请求的正文数据。
在方法中,我们首先创建了一个 HttpClient 实例,然后使用传递进来的 url 和 data 创建了一个 HttpRequestMessage 对象。我们使用 HttpClient 的 SendAsync 方法来发送请求,并使用 EnsureSuccessStatusCode 方法确保请求成功。最后,我们使用 ReadAsStringAsync 方法从响应正文中读取数据,并将其作为字符串返回。
要使用此反向代理 API,您可以向其 POST 数据,例如:
{
'url': 'https://api.example.com/v1/users',
'data': {
'name': 'John',
'email': 'john@example.com'
}
}
其中,url 是要代理的目标 URL,data 是 POST 请求的正文数据。您可以使用任何 HTTP 客户端库来向此 API 发送 POST 请求。
原文地址: https://www.cveoy.top/t/topic/mmZJ 著作权归作者所有。请勿转载和采集!