在ASP.Net Core 2.0中,如何在使用Response.Redirect()
重定向到第三方URL的同时发布数据?
注意:我必须在不使用查询字符串的情况下发布此数据。
答案 0 :(得分:1)
Response.Redirect触发GET请求,这意味着唯一的选择是使用查询字符串。 您可以触发来自客户端(如果有)的重定向以发出POST请求吗?
答案 1 :(得分:0)
如果要发布数据而不使用查询字符串,则必须使用object。
[HttpPost]
public IActionResult Search([FromBody] CustomerSearchRequestApiModel request)
{
if (request == null)
{
return BadRequest();
}
return Ok(request);
}
答案 2 :(得分:0)
无法使用Response.Redirect()
发送Post
请求。
要解决此问题,您可以尝试HttpClient
发送Post
请求,然后使用ContentResult
作为text/html
将响应返回到Web浏览器。
这是演示代码:
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。