我在获取从Android应用程序发送到go应用程序的参数时遇到问题。我调用了r.FormValue(key),但它返回null。我想找到在Android应用程序发送帖子数据后检查Go端可用参数的方法。有没有办法做到这一点,不使用键获取所有参数?
答案 0 :(得分:6)
go中的Request结构有一个Form
字段,在调用ParseForm()
后填充了请求参数。
表单包含已解析的表单数据,包括URL字段 查询参数和POST或PUT表单数据。此字段仅供参考 在调用ParseForm之后可用。 HTTP客户端忽略Form和 使用Body代替。
您可以在收到请求后尝试添加以下代码:
func(w http.ResponseWriter, request *http.Request) {
request.ParseForm()
log.Printf("%v",request.Form)
//....
}
答案 1 :(得分:2)
如果这是用于调试,您可以使用DumpRequest:
func(w http.ResponseWriter, r *http.Request) {
dump, err := httputil.DumpRequest(r, true)
if err != nil {
http.Error(w, fmt.Sprint(err), http.StatusInternalServerError)
return
}
log.Printf("%s", dump)
}