如果用上述的方法的话,我们需要把所有的参数一个个直接拼接在url后,非常不方便也不美观,所以我们可以调用url.Values库来达到我们想要的效果
解析json结果数据的大概思路就是,先定义一个结构体,结构体中定义我们想要的字段名和字段类型,然后通过json.Unmarshal方法进行解析
得到数据
响应结果
可以看到 name和age已经被我们添加到请求头中了
建立一个post连接
post请求不同于get请求,需要将params跟在url后面
post请求的参数和url是作为两个参数存在的
过程和上边的差不多,只不过要先建立一个map(json),然后将json转化为byte,再将byte转化为io.Reader类型
响应结果
在处理并发时,为了防止多端修改数据造成紊乱,使用锁的方法进行解决
运行之后,访问localhost:8080/hello 我们访问页面会发现有count is 0的字样,并且每刷新一次就加1
http.request的三个属性Form、PostForm、MultipartForm:Form:存储了post、put和get参数,在使用之前需要调用ParseForm方法。
PostForm:存储了post、put参数,在使用之前需要调用ParseForm方法。
MultipartForm:存储了包含了文件上传的表单的post参数,在使用前需要调用ParseMultipartForm方法。
获取Get参数
用postman测试,提交http://localhost:8080/?uid=111,服务端输出 :[111],提交: http://localhost:8080/?uid=111&uid=222。服务端输出:[111 222]
小结:r.Form是url.Values字典类型,r.Form[“id”]取到的是一个数组类型。因为http.request在解析参数的时候会将同名的参数都放进同一个数组里。