为什么在Golang GAE中,PostForm没有重定向?

huangapple go评论83阅读模式
英文:

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)

huangapple
  • 本文由 发表于 2015年1月18日 18:29:58
  • 转载请务必保留本文链接:https://go.coder-hub.com/28008688.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定