Golang实现requests库
程序员文章站
2022-09-09 15:13:16
Golang实现requests库 简单的封装下,方便使用,像python的requests库一样。 Github地址 "Github" 支持 、`POST PUT DELETE` 、`application/x www form urlencoded` 不支持: 使用 下面是常用的例子, 请求; ......
golang实现requests库
简单的封装下,方便使用,像python的requests库一样。
github地址
支持
-
get
、post
、put
、delete
-
application/json
、application/x-www-form-urlencoded
不支持:
multipart/form-data
使用
下面是常用的例子,get
请求;post
表单提交、json提交,保存文件等。
get
func gettext() { text, err := requests.get("http://127.0.0.1:8080/ping"). params(url.values{ "param1": {"value1"}, "param2": {"123"}, }). send(). text() if err != nil { panic(err) } fmt.println(text) }
get
请求一般需要传递query string
,如下:
get http://127.0.0.1:8080/ping?param1=value1¶m2=123 http/1.1
post form
func postform() { text, err := requests.post("http://127.0.0.1:8080/ping"). params(url.values{ "param1": {"value1"}, "param2": {"123"}, }). form(url.values{ "form1": {"value1"}, "form2": {"123"}, }). send(). text() if err != nil { panic(err) } fmt.println(text) }
post
表单提交,需要在请求体中放入表单参数:
post http://127.0.0.1:8080/ping?param1=value1¶m2=123 http/1.1 content-type: application/x-www-form-urlencoded form1=value1&form2=123
post json
func postjson() { text, err := requests.post("http://127.0.0.1:8080/ping"). params(url.values{ "param1": {"value1"}, "param2": {"123"}, }). json(map[string]interface{}{ "json1": "value1", "json2": 2, }). send(). text() if err != nil { panic(err) } fmt.println(text) }
post
json请求需要在请求体中放入json字符串:
post http://127.0.0.1:8080/ping?param1=value1¶m2=123 http/1.1 content-type: application/json {"json1": "value1", "json2": 2}
保存文件
func save() { err := requests.get("https://github.com/xuanbo/requests"). send(). save("./requests.html") if err != nil { panic(err) } }
实现思路
主要是通过golang的标准库http去发送请求,下面是伪码:
// 1.创建请求 req, err := http.newrequest(method, url, strings.newreader(body)) // 2.设置请求头 req.header // 3.发送请求 resp, err:= http.defaultclient.do(req) // 4.处理响应 r.resp.body
说明
just for fun!
上一篇: 学懒点吧,是懒人改变了这个世界
下一篇: 主板、显卡:明年上半年更加疲软