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

问题描述 投票:1回答:3

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

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

asp.net asp.net-core
3个回答
1
投票

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


0
投票

如果要在不使用查询字符串的情况下发布数据,则必须使用object。

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

    return Ok(request);
}

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。

© www.soinside.com 2019 - 2024. All rights reserved.