求教golang中http发送post请求gb2312编码的解决方案
不要用PostForm,至於编码可以用code.google.com/p/mahonia这个库把utf8编码攥成gb2312,附上代码片段
创新互联是一家集网站建设,新疆企业网站建设,新疆品牌网站建设,网站定制,新疆网站建设报价,网络营销,网络优化,新疆网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
resp, err := http.Post(reqUrl,
"application/x-www-form-urlencoded",
strings.NewReader(fmt.Sprintf(
"__VIEWSTATE=%s__EVENTVALIDATION=%stxtUid=000000000txtPwd=xxxxxxxxselKind=1selKind=1btLogin=%B5%C7%C2%BD",
url.QueryEscape(viewstate),
url.QueryEscape(eventvalidation),
)),
)
golang request.go中PostForm和Form区别
上面是从源码复制得出。
Form属性包含了post表单和url后面跟的get参数。
PostForm属性只包含了post表单参数。
实践数据如下:
打印请求头:
打印Form和PostForm
客户端打印:
golang获取postman传递数据的方法
http.request的三个属性Form、PostForm、MultipartForm:
Form:存储了post、put和get参数,在使用之前需要调用ParseForm方法。
PostForm:存储了post、put参数,在使用之前需要调用ParseForm方法。
MultipartForm:存储了包含了文件上传的表单的post参数,在使用前需要调用ParseMultipartForm方法。
获取Get参数
用postman测试,提交,服务端输出 :[111],提交: ;uid=222。服务端输出:[111 222]
小结:r.Form是url.Values字典类型,r.Form[“id”]取到的是一个数组类型。因为http.request在解析参数的时候会将同名的参数都放进同一个数组里。
网站栏目:go语言postform Go语言特性
转载来源:http://lswzjz.com/article/hiooeo.html