当前位置: > > > > 发出自定义发布请求时出现 400 Bad Request
来源:stackoverflow
2024-04-23 22:30:35
0浏览
收藏
学习知识要善于思考,思考,再思考!今天小编就给大家带来《发出自定义发布请求时出现 400 Bad Request》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!
问题内容
我认为问题出在 url 值上。当我将其发布到服务器时,我会收到 400 bad request:告诉我需要一个电子邮件值。这让我相信 editform 中的电子邮件值解析不正确,或者是第一个值,然后“污染”其余部分。我已经看到了这个:使用 `http.newrequest(…)` 发出 url 编码的 post 请求,并相信我做的一切都是正确的,但这让我失望。
editform := url.values{} editform.add("first_name", "supercool") editform.add("email", "[email protected]") editform.add("username", "foo") req, err := http.newrequest(http.methodpost, urlendpoint, strings.newreader(editform.encode())) if err != nil { log.fatalln(err) } client := http.client{} resp, err := client.do(req)
我已经仔细检查了表单数据的名称,但看不到错误。作为参考,这个 python 代码可以工作。
cn = { "first_name": "supercool", "email": "[email protected]", "username": "foo" } r = requests.post(urlEndpoint, data = cn)
解决方案
您没有发送内容协商标头。
内容类型
content-type 标头字段指定了数据的性质 实体的主体,通过给出媒体类型和子类型标识符,并提供某些可能需要的辅助信息 媒体类型。在媒体类型和子类型名称之后,标头字段的其余部分只是一组参数,以 attribute=value 表示法指定。参数的顺序并不重要。
在本例中,内容在 application/x-www-form-urlencoded
中进行编码,因此必须使用 content-type
标头将其传送到服务器
请在发送请求之前添加以下内容
r.Header.Add("Content-Type", "application/x-www-form-urlencoded")
文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《发出自定义发布请求时出现 400 Bad Request》文章吧,也可关注公众号了解相关技术文章。