5

我是围棋和杜松子酒的新手,所以请原谅我的无知。

我已经使用支持 POST 请求的 Gin 设置了一个服务器。我希望用户发布他们的请求,其中包括将请求重定向到另一个 URL 所需的 JSON 有效负载。作为重定向的一部分,我需要传递原始 JSON 有效负载。例如,如果用户发出此 CURL 请求:

curl -H "Content-Type: application/json" -d '{ "name": "NewTest Network", "organizationId": 534238, "type": "wireless"}' -X POST " http://localhost: 8080/网络"

我的杜松子酒代码是这样做的:

r.POST("/network", func(c *gin.Context) {
    c.Redirect(http.StatusMovedPermanently, networks_url)
})

其中:networks_url 是重定向的 URL。我需要一种将原始 JSON 有效负载传递给重定向 URL 的方法。

您能提供的任何帮助将不胜感激。

4

3 回答 3

4

这与 Go 或 gin 没有任何关系。

这是用户代理的预期行为,它应该使用 301 或 302 重定向将方法从 POST 更改为 GET。

要指示用户代理使用相同的方法重复请求,请使用 307 ( http.StatusTemporaryRedirect) 或 308 ( http.StatusPermanentRedirect)。

于 2016-10-07T17:17:52.260 回答
3

您必须使用301302作为重定向状态代码。

c.Redirect(301, "http://www.google.com/")

请参阅此处的文档。

于 2018-09-26T14:39:09.267 回答
0

我有太多请求(循环)的问题,所以我对这个没问题。

if err != nil {
    session.AddFlash("The error I would like to show.", "error")
    c.Redirect(http.StatusMovedPermanently, "/my/route")
    return
}
于 2019-06-28T06:43:38.180 回答