将POST请求从ASP.NET Core控制器转发到不同的URL可以通过以下方式实现:
示例代码:
using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
public class MyController : Controller
{
private readonly HttpClient _httpClient;
public MyController(HttpClient httpClient)
{
_httpClient = httpClient;
}
[HttpPost]
public async Task<IActionResult> ForwardRequest([FromBody] object requestData)
{
// 构建目标URL
string targetUrl = "https://example.com/destination";
// 发送POST请求到目标URL
HttpResponseMessage response = await _httpClient.PostAsJsonAsync(targetUrl, requestData);
// 处理响应结果
if (response.IsSuccessStatusCode)
{
// 处理成功响应
var responseData = await response.Content.ReadAsAsync<object>();
return Ok(responseData);
}
else
{
// 处理错误响应
return BadRequest();
}
}
}
示例代码:
using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
public class MyController : Controller
{
private readonly HttpClient _httpClient;
private readonly ILogger<MyController> _logger;
public MyController(HttpClient httpClient, ILogger<MyController> logger)
{
_httpClient = httpClient;
_logger = logger;
}
[HttpPost]
public async Task<IActionResult> ForwardRequest([FromBody] object requestData)
{
try
{
// 构建目标URL
string targetUrl = "https://example.com/destination";
// 发送POST请求到目标URL
HttpResponseMessage response = await _httpClient.PostAsJsonAsync(targetUrl, requestData);
// 处理响应结果
if (response.IsSuccessStatusCode)
{
// 处理成功响应
var responseData = await response.Content.ReadAsAsync<object>();
return Ok(responseData);
}
else
{
// 处理错误响应
return BadRequest();
}
}
catch (Exception ex)
{
_logger.LogError(ex, "Error occurred while forwarding request.");
return StatusCode(500);
}
}
}
请注意,以上示例中的目标URL为示例URL,实际应根据需求进行替换。
推荐的腾讯云相关产品和产品介绍链接地址:
请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行。
领取专属 10元无门槛券
手把手带您无忧上云