如何解决如何通过http客户端发送邮寄表格数据?
我对发布请求有疑问,需要通过http客户端发送简单的表单数据。 http.PostForm()不合适,因为我需要设置自己的用户代理和其他标头。
这里是样品
func main() {
formData := url.Values{
"form1": {"value1"},"form2": {"value2"},}
client := &http.Client{}
//Not working,the post data is not a form
req,err := http.NewRequest("POST","http://test.local/api.php",strings.NewReader(formData.Encode()))
if err != nil {
log.Fatalln(err)
}
req.Header.Set("User-Agent","Golang_Super_Bot/0.1")
resp,err := client.Do(req)
if err != nil {
log.Fatalln(err)
}
defer resp.Body.Close()
body,err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatalln(err)
}
log.Println(string(body))
}
解决方法
您还需要将内容类型设置为application/x-www-form-urlencoded
,该类型与Value.Encode()
使用的编码相对应。
req.Header.Set("Content-Type","application/x-www-form-urlencoded")
这是Client.PostForm完成的事情之一。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。