英文:
why is PostForm not redirecting in golang gae?
问题
我正在尝试使用golang发布一个表单。我的代码如下:
client := urlfetch.Client(c)
resp, err := client.PostForm("example.com", url.Values{})
if err != nil {
panic(err)
}
我得到了200 OK的响应,但它没有重定向到example.com。
我做错了什么吗?
英文:
I am trying to post a form using golang. My code is below
client := urlfetch.Client(c)
resp, err := client.PostForm("example.com", url.Values{})
if err != nil {
panic(err)
}
I am getting 200 OK response but it is not redirecting to example.com
Am i doing something wrong?
答案1
得分: 2
一个 net.http.Client.PostForm() 方法会向指定的URL发起一个POST请求,请求体中的数据的键和值会被URL编码。
但这并不意味着它会指示目标网站重定向任何内容。
正如 这个线程中所示,只有当网站返回 302状态码 时,客户端才会跟随重定向,遵循 Post/Redirect/Get 网页开发设计模式,以防止一些重复的表单提交。
(Issue 4145,在2013年5月为go 1.1修复,使用了 commit 08ce7f1)
英文:
A net.http.Client.PostForm() issues a POST to the specified URL, with data's keys and values urlencoded as the request body.
But that doesn't mean it instruct the target website to redirect anything.
As shown in this thread, the client would follow a redirect only if the website returned a 302 code, respecting the Post/Redirect/Get web development design pattern that prevents some duplicate form submissions.
(Issue 4145, fixed with commit 08ce7f1 for go 1.1, May 2013)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论