一分耕耘,一分收获!既然都打开这篇《使用 POSTMAN 在 FORMValue golang 中访问 POST 请求值》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新Golang相关的内容,希望对大家都有所帮助!
问题内容
我不知道为什么在 postman 中发送值时总是收到空字符串
func main(){
rtr := mux.newrouter()
rtr.handlefunc("/search", search).methods("post")
}
func search(w Http.responsewriter, r *http.request) {
name := r.formvalue("name") //returns empty
}
这是postman中的正文请求
正文请求的屏幕截图
{
"name": "markus"
}
我尝试将正文请求更改为表单数据
post请求中表单数据的屏幕截图
但是还是没有成功。
有人有解决办法吗?
谢谢
解决方案
你拥有的不是 formvalue 而是 JSON 主体。如果您的 json 对象只是字符串到字符串的简单映射,那么您可以执行以下操作:
func search(w http.responsewriter, r *http.request) {
body, _ := ioutil.readall(r.body) // check for errors
keyval := make(map[string]string)
json.unmarshal(body, &keyval) // check for errors
name := keyval["name"]
// do whatever with name
}
编辑
如果需要解析表单值,则需要调用parseform()
func search(w http.ResponseWriter, r *http.Request) {
err := r.ParseForm()
if err != nil {
// handle err
}
name := r.FormValue("name")
}
只是想在这里分享更多信息。
如果您在向服务器发送请求时遇到任何问题,请检查 postman 标头部分中的 content-type。
将 content-type 设置为 application/json 以在请求中发送原始 json。
如果您要在请求中发送表单值,请将 content-type 设置为 application/x-www-form-urlencoded。还要在邮递员的正文部分选择 x-www-form-urlencoded
终于介绍完啦!小伙伴们,这篇关于《使用 POSTMAN 在 FormValue Golang 中访问 POST 请求值》的介绍应该让你收获多多了吧!