我为我的处理程序编写了多个方法,例如:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
问题是r.Form总是一张空地图,在我的删除请求中,我用JSON发送Id,如下所示:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
在main方法中我注册了这样的处理程序方法:
func DeleteProduct(w http.ResponseWriter, r *http.Request){
log.Println(r.Form)
db.Exec("Delete from products where Id = "+r.FormValue("Id"))
}
为什么r.Form和r.PostForm总是一张空地图?
答案 0 :(得分:3)
如果是JSON请求,您必须在使用前unmarshal
请求正文
任何参数。
例如:
type ReqBody struct {
CustomerDateTime string `json:"CustomerDateTime"`
CustomerDateTime string `json:"CustomerDateTime"`
UserId int `json:"UserId"`
}
body, err := ioutil.ReadAll(req.Body)
if err != nil {
// Error handler...
}
rb := ReqBody{}
json.Unmarshal(body, &rb)
// Now you can perform something like this:
println(rb.UserId)