Compare commits

..

4 Commits

Author SHA1 Message Date
2bd8cf162f fix: 修复请求体为nil时读取报错的问题 2024-09-14 14:02:33 +08:00
8c5228668f update md 2024-01-15 10:26:22 +08:00
1549e4142c udpate md 2024-01-15 10:20:28 +08:00
7fe8681468 upate 2024-01-12 16:17:05 +08:00
2 changed files with 20 additions and 15 deletions

View File

@ -1,10 +1,11 @@
_# simpleRequest
# simpleRequest
## 1. 说明
[simpleRequest](www.github.com/dorlolo/simpleRequest) 是一款面向对象开发的http请求库。他是基于Go原生http库。开发这个模块的主要目的是为了更快的对接第三方api接口。
它具备以下特点:
- 极简化的代码,大大提高了代码编写速度。
- 更易于理解和使用,减少了资料查询的时间。
- 更适合对接一些不遵循restful规范的接口。
[simpleRequest](www.github.com/dorlolo/simpleRequest) 是一款面向对象的http请求库它在Go原生的http库为基础做了一定的封装使开发更加便捷。
> [simpleRequest](www.github.com/dorlolo/simpleRequest) 具备以下特点:
- 没有在代码层面遵循restful规范适合对接不符合规范的接口;
- 轻量级、不需要繁琐的配置;
- 易于理解和使用,减少了资料查询的时间。
这是它的一个示例:
```go
@ -61,12 +62,13 @@ r.Headers().Set("token", "d+jfdji*D%1=").Set("Content-Type", "application/json")
```
#### 2.4.4 添加多值
对单个key添加多只不要使用`.set`,因为原先的值会被覆盖
```go
// 对相同key的值进行覆盖请使用Set方法
r.Headers().Set("Accept", "text/html")
// 对相同key的值进行追加请使用Add方法
r.Headers().Add("Accept","application/xhtml+xml")
r.Headers().Add("Accept","application/xml;q=0.8")
r.Headers().Add("Accept","image/webp")
r.Headers().Add("Accept","*/*;q=0.8")
```
@ -241,7 +243,7 @@ func FileForwardUseBytesBody(c *gin.Context){
writer = multipart.NewWriter(body)
)
// add file object
filePart, _ := i.writer.CreateFormFile("file", file.Filename)
filePart, _ := writer.CreateFormFile("file", file.Filename)
src, err := file.Open()
if err != nil {
fmt.Println( err.Error())
@ -325,4 +327,4 @@ responseContext:=r.Response
```
## 3. 使用示例
[simpleRequest_test.go](excample/simpleRequest_test.go)_
[simpleRequest_test.go](excample/simpleRequest_test.go)

View File

@ -54,7 +54,7 @@ type SimpleRequest struct {
BodyEntries map[string]any // 输入的body中的内容
bodyEntryParsers map[string]IBodyEntryParser // 用于将BodyEntries中的内容解析后传入request body中
disableDefaultContentType bool // 禁用默认的ContentType
disableCopyRequestBody bool // 禁用默认的ContentType在进行http请求后SimpleRequest.Request.Body中内容会无法读取
disableCopyRequestBody bool // 禁用复制请求体在进行http请求后SimpleRequest.Request.Body中内容会无法读取,但是会提高性能
timeout time.Duration
@ -173,12 +173,15 @@ func (s *SimpleRequest) GET(urls string) (body []byte, err error) {
// 通用的请求方法
func (s *SimpleRequest) LaunchTo(urls, method string) (body []byte, err error) {
var r *http.Request
// body
s.initBody()
var r *http.Request
copBody, err := io.ReadAll(s.body)
if err != nil {
return
var copBody []byte
if s.body != nil {
copBody, err = io.ReadAll(s.body)
if err != nil {
return
}
}
if !s.disableCopyRequestBody {
// 使r.body在请求后仍旧可读,便于使用者对请求过程进行分析