diff --git a/README.MD b/README.MD index f096428..f1f01f7 100644 --- a/README.MD +++ b/README.MD @@ -1,33 +1,52 @@ # simpleRequest ## 1. 说明 -[simpleRequest](www.github.com/dorlolo/simpleRequest) 是基于golang原生http库的封装,适合用来对第三方接口进行快速地对接和开发。 +[simpleRequest](www.github.com/dorlolo/simpleRequest) 是一款面向对象开发的http请求库。他是基于Go原生http库。开发这个模块的主要目的是为了更快的对接http协议的IOT设备。 它具备以下特点: -- 相对于其它请求库,更易于理解和使用。极大减少了开发过程中的代码量和资料查询时间。 -- 适合对接一些未遵循restful规范的接口。 +- 极简化的代码,大大提高了代码编写速度。 +- 更易于理解和使用,减少了资料查询的时间。 +- 更适合对接一些未遵循restful规范的接口。 +这是它的一个示例: +```go +var r = simpleRequest.NewRequest() +//设置请求头 +r.Headers().Set("x-token", "d+jfdji*D%1=") +// 添加query +r.QueryParams().Set("user", "JJXu").Set("job", "developer") +//--发送请求 +res, err := r.GET("http://www.webSite.com/end/point") +if err != nil { + t.Error(err) +} else { + fmt.Println(res) +} +``` ## 2. 如何使用? - -### 2.1 模块导入 +### 2.2 安装 +```bash +go get github.com/dorlolo/simpleRequest +``` +### 2.2 模块导入 ```go import "github.com/dorlolo/simpleRequest" ``` -### 2.2 实例化 +### 2.3 实例化 ```go var r = simpleRequest.NewRequest() ``` -### 2.3 添加请求头 +### 2.4 添加请求头 -#### 2.3.1 单个赋值 +#### 2.4.1 单个赋值 ```go r.Headers().Set("token", "d+jfdji*D%1=") r.Headers().Set("Content-Type", "application/json") ``` -#### 2.3.2 map赋值 +#### 2.4.2 map赋值 ```go mapHeaders:= map[string]string{ "token": "d+jfdji*D%1=", @@ -36,12 +55,12 @@ mapHeaders:= map[string]string{ r.Headers().Sets(mapHeaders) ``` -#### 2.3.3 链式赋值 +#### 2.4.3 链式赋值 ```go r.Headers().Set("token", "d+jfdji*D%1=").Set("Content-Type", "application/json") ``` -#### 2.3.4 添加多值 +#### 2.4.4 添加多值 对单个key添加多只不要使用`.set`,因为原先的值会被覆盖 ```go r.Headers().Set("Accept", "text/html") @@ -51,7 +70,7 @@ r.Headers().Add("Accept","image/webp") r.Headers().Add("Accept","*/*;q=0.8") ``` -#### 2.3.4 使用预设的key +#### 2.4.4 使用预设的key ```go r.Headers().SetConentType("application/json") //r.Headers().Set("Content-Type", "application/json") @@ -63,7 +82,7 @@ r.Headers().SetConentEncoding("gzip, deflate, br") //r.Headers().Set("Content-Encoding", "gzip, deflate, br") ``` -#### 2.3.5 使用预设的key-value +#### 2.4.5 使用预设的key-value ```go //随机user-agent r.Headers().SetRandomUerAgent() @@ -82,12 +101,12 @@ r.Headers().ConentType_textPlain() //r.Headers().Set("Content-Type","text/plain; charset=utf-8") ``` -### 2.4 添加queryParams -#### 2.4.1 单个赋值 +### 2.5 添加queryParams +#### 2.5.1 单个赋值 ```go r.QueryParams().Set("user", "dorlolo") ``` -#### 2.4.2 map赋值 +#### 2.5.2 map赋值 不会覆盖上面之前填充过的参数 ```go pamarsBulid := make(map[string]any) @@ -96,28 +115,28 @@ pamarsBulid["action"] = "login" r.QueryParams().Sets(pamarsBulid) ``` -#### 2.4.3 链式赋值 +#### 2.5.3 链式赋值 ```go r.QueryParams().Set("user", "dorlolo").Set("passwd","123456") ``` -#### 2.4.4 获取url.Values对象进行赋值 +#### 2.5.4 获取url.Values对象进行赋值 对象类型为`*url.Values`,取到地址后,可以使用`url.Values`中的方法继续进行赋值 ```go qpData:=r.QueryParams().Gets() qpData.Add("age","18") ``` -### 2.5 添加请求体body +### 2.6 添加请求体body -#### 2.5.1 单个参数赋值 +#### 2.6.1 单个参数赋值 支持和map赋值同时使用 ```go r.Body().Set("beginDate", "2022-03-01").Set("endDate", "2022-03-03") ``` -#### 2.5.2 map赋值 +#### 2.6.2 map赋值 支持和单个参数赋值同时使用 ```go bodyBulid := map[string]any{ @@ -127,26 +146,26 @@ bodyBulid := map[string]any{ r.Body().Sets(bodyBulid) ``` -#### 2.5.3 技巧:链式赋值 +#### 2.6.3 技巧:链式赋值 ```go r.Body().Set("beginDate", "2022-03-01").Set("endDate", "2022-03-03") ``` -#### 2.5.4 字符串赋值 +#### 2.6.4 字符串赋值 此方法为一次性赋值,不支持和其它赋值方法同时使用 ```go bodydata:=`{"devSn":"230000000008","type":"day"}` r.Body().SetString(bodydata) ``` -#### 2.5.5 字节赋值 +#### 2.6.5 字节赋值 此方法为一次性赋值,不支持和其它赋值方法同时使用 ```go bytesdata:=[]byte(`{"devSn":"230000000008","type":"day"}`) r.Body().SetBytes(bytesdata) ``` -#### 2.5.6 结构体赋值 +#### 2.6.6 结构体赋值 此方法为一次性赋值,不支持和其它赋值方法同时使用 ```go type demo struct{ @@ -160,38 +179,28 @@ modeldata:=demo{ r.Body().SetModel(&modeldata) ``` -### 2.6 其它请求参数 +### 2.7 其它请求参数 -#### 2.6.1 设置超时时间 +#### 2.7.1 设置超时时间 ```go r.TimeOut(time.Second * 30) ``` -#### 2.6.2 跳过证书验证 +#### 2.7.2 跳过证书验证 ```go r.SkipCertVerify() ``` -### 2.7 发送请求 -#### 2.7.1 post请求 +### 2.8 发送请求 +#### 2.8.1 post请求 ```go -res, err :=r.Post("https://127.0.0.1:80/excample") +res, err :=r.POST("https://127.0.0.1:80/excample") if err != nil { ftm.Println( "error occured", err) } else { fmt.Println(res) } ``` - -#### 2.7.2 发送请求 -```go -res, err :=r.Get("https://127.0.0.1:80/excample") -if err != nil { -ftm.Println( "error occured", err) -} else { -fmt.Println(res) -} -``` **支持的请求类型有** - POST - GET @@ -204,14 +213,14 @@ fmt.Println(res) - TRACE -### 2.8 获取上下文 +### 2.9 获取上下文 请注意,需要完成请求后才能获得上下文数据! -#### 2.8.1 获取请求的上下文对象 +#### 2.9.1 获取请求的上下文对象 ```go requestContext:=r.Request ``` -#### 2.8.2 获取返回的上下文对象 +#### 2.9.2 获取返回的上下文对象 ```go responseContext:=r.Response ```