在 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 浏览器,并将ContentResult
text/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。