当我使用下面的 GO 函数发出 POST 请求时。我invalid json在服务器端得到一个。例如,如果我发送静态 jsonvar jsonprep = []byte(`{"username":"xyz@gmail.com","password":"xyz123"}`) 它确实有效,而不是var jsonprep string = "`{username:"+username+",password:"+password+"}`".func makeHttpPostReq(url string, username string, password string){ client := http.Client{} var jsonprep string = "`{username:"+username+",password:"+password+"}`" var jsonStr = []byte(jsonprep) req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr)) req.Header.Set("Content-Type", "application/json") resp, err := client.Do(req) if err != nil { fmt.Println("Unable to reach the server.") } else { body, _ := ioutil.ReadAll(resp.Body) fmt.Println("body=", string(body)) }}
2 回答
慕码人2483693
TA贡献1860条经验 获得超9个赞
如果你使用
var jsonprep string = "`{username:"+username+",password:"+password+"}`"
服务器会得到这样的数据:
`{username:your_username,password:yourpassword}`
因为在双引号中的反引号 `` 中的字符串不是原始字符串文字,当然它是无效的 json。您可以手动编写 json 字符串:
var jsonprep string = "{\"username\":\"" + username + "\",\"password\":\"" + password + "\"}"
- 2 回答
- 0 关注
- 151 浏览
添加回答
举报
0/150
提交
取消