使用Gin:如何将原始JSON有效负载传递给Redirect POST

时间:2016-10-07 16:46:24

标签: go go-gin

对于Go和Gin来说,我是新手,所以请原谅我的无知。

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

curl -H“Content-Type:application / json”-d'{“name”:“NewTest Network”,“organizationId”:534238,“type”:“wireless”}'-X POST“{{3 }}“

我的杜松子酒代码执行此操作:

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

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

非常感谢您提供的任何帮助。

3 个答案:

答案 0 :(得分:2)

这与Go或杜松子酒没有任何关系。

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

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

答案 1 :(得分:1)

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

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

请参阅文档here

答案 2 :(得分:0)

我的问题太多了(循环),所以我对此很满意。

if err != nil {
    session.AddFlash("The error I would like to show.", "error")
    c.Redirect(http.StatusMovedPermanently, "/my/route")
    return
}