golang http库的使用 并发 get post请求处理

Python017

golang http库的使用 并发 get post请求处理,第1张

我们这里是通过网站 聚合数据 获取到的公共API接口,也可以直接访问 https://baidu.com 来进行测试,但是效果不佳

如果用上述的方法的话,我们需要把所有的参数一个个直接拼接在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在解析参数的时候会将同名的参数都放进同一个数组里。