golang,从文件中读取内容,并在HTTP请求中作为正文数据发送

时间:2016-01-19 04:25:45

标签: http go filereader

//read data from a file config.json
//the contents of config.json is
//{"key1":"...Z-DAaFpGT0t...","key2":"..."}
 client :=   &http.Client{}
 dat, err := ioutil.ReadFile("/config.json")
 req, err := http.NewRequest("PUT", url, bytes.NewBuffer(dat))
 resp, err := client.Do(req)

然后我会收到来自服务器的错误,说“400 Bad Request”,“”无效字符'ï'寻找值的开头“”。

似乎数据未正确解码。

下面的代码可以使用

 client :=   &http.Client{}
 //dat, err := ioutil.ReadFile("/config.json")
 var dat = []byte(`{"key1":"...Z-DAaFpGT0t...","key2":"..."}`)
 req, err := http.NewRequest("PUT", url, bytes.NewBuffer(dat))
 resp, err := client.Do(req)

1 个答案:

答案 0 :(得分:0)

请检查所需服务器的content-type,并将正文构建为所需的content-type

content-typeapplication/json; charset=utf-8时,您尝试将其设置为

req.Header.Set("Content-Type", "application/json; charset=utf-8")

如果仍然无效,请进行http加载捕获。