下面是一个使用 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 请求。

C# .NET 4.5.1 WebAPI 反向代理异步 POST 请求示例

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

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