在使用 Response.Redirect() 重定向到第三方 URL 时发布数据



在 ASP.Net Core 2.0中,如何在使用Response.Redirect()重定向到第三方URL时发布数据?

注意:我必须在不使用查询字符串的情况下发布此数据。

Response.Redirect触发GET请求,这意味着唯一的选择是使用查询字符串。 是否可以触发来自客户端的重定向(如果有(以发出 POST 请求?

如果要发布数据而不使用查询字符串,则必须使用 object。

[HttpPost]
public IActionResult Search([FromBody] CustomerSearchRequestApiModel request)
{       
if (request == null)
{
return BadRequest();    
}
return Ok(request);
}

不可能使用Response.Redirect()发送请求Post

对于解决方法,您可以尝试HttpClient发送Post请求,然后将回复返回到 Web 浏览器,并将ContentResulttext/html

下面是一个演示代码:

public async Task<ContentResult> HtmlView()
{
using (var formDataContent = new MultipartFormDataContent())
{
HttpClient client = new HttpClient();
Article article = new Article { ArticleName = "AN" };
formDataContent.Add(new StringContent("AN", Encoding.UTF8, "application/json"), "ArticleName");
using (HttpClient httpClient = new HttpClient())
{
HttpResponseMessage response = await httpClient.PostAsync(@"https://localhost:44393/Articles/Create", formDataContent);
return new ContentResult
{
ContentType = "text/html",
StatusCode = (int)response.StatusCode,
Content = await response.Content.ReadAsStringAsync()
};
}
}
}

注意

更改HttpClient部分,以使用验证参数将正确的请求发送到您自己的第三方 URL。

最新更新