diff --git a/README.md b/README.md index c523ccd..546d361 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # requests -[![Gitee link address](https://img.shields.io/badge/gitee-reference-red?logo=gitee&logoColor=red&labelColor=white)](https://gitee.com/leegene/requests)[![Github link address](https://img.shields.io/badge/github-reference-blue?logo=github&logoColor=black&labelColor=white&color=black)](https://github.com/wangluozhe/requests)[![Go Version](https://img.shields.io/badge/Go%20Version-1.20-blue?logo=go&logoColor=white&labelColor=gray)]()[![Release Version](https://img.shields.io/badge/release-v1.2.3-blue)]()[![go documentation](https://img.shields.io/badge/go-documentation-blue)](https://pkg.go.dev/github.com/wangluozhe/requests)[![license GPL-3.0](https://img.shields.io/badge/license-GPL3.0-orange)](https://github.com/wangluozhe/requests/blob/main/LICENSE) +[![Gitee link address](https://img.shields.io/badge/gitee-reference-red?logo=gitee&logoColor=red&labelColor=white)](https://gitee.com/leegene/requests)[![Github link address](https://img.shields.io/badge/github-reference-blue?logo=github&logoColor=black&labelColor=white&color=black)](https://github.com/wangluozhe/requests)[![Go Version](https://img.shields.io/badge/Go%20Version-1.20-blue?logo=go&logoColor=white&labelColor=gray)]()[![Release Version](https://img.shields.io/badge/release-v1.2.4-blue)]()[![go documentation](https://img.shields.io/badge/go-documentation-blue)](https://pkg.go.dev/github.com/wangluozhe/requests)[![license GPL-3.0](https://img.shields.io/badge/license-GPL3.0-orange)](https://github.com/wangluozhe/requests/blob/main/LICENSE) requests支持以下新特性: @@ -28,7 +28,7 @@ go get github.com/wangluozhe/requests ## 下载指定版 ```bash -go get github.com/wangluozhe/requests@v1.2.3 +go get github.com/wangluozhe/requests@v1.2.4 ``` diff --git a/libs_dist/export.go b/libs_dist/export.go index 7060354..58a792c 100644 --- a/libs_dist/export.go +++ b/libs_dist/export.go @@ -15,6 +15,7 @@ import ( "github.com/wangluozhe/requests/libs" ja3 "github.com/wangluozhe/requests/transport" "github.com/wangluozhe/requests/url" + "github.com/wangluozhe/requests/utils" url2 "net/url" "strings" "sync" @@ -73,7 +74,7 @@ func request(requestParamsChar *C.char) *C.char { responseParams["headers"] = response.Headers responseParams["cookies"] = response.Cookies responseParams["status_code"] = response.StatusCode - responseParams["content"] = response.Text + responseParams["content"] = utils.Base64Encode(response.Text) responseParamsString, err := json.Marshal(responseParams) if err != nil { diff --git a/sessions.go b/sessions.go index 5ef6b9f..043d8d4 100644 --- a/sessions.go +++ b/sessions.go @@ -402,7 +402,10 @@ func (s *Session) Send(preq *models.PrepareRequest, req *url.Request) (*models.R c, _ := cookiejar.New(nil) c.SetCookies(request.URL, request.Cookies()) p.Prepare(request.Method, request.URL.String(), nil, &request.Header, c, nil, nil, nil, "", nil) - r := s.buildResponse(request.Response, p, &url.Request{}) + r, err := s.buildResponse(request.Response, p, &url.Request{}) + if err != nil { + return err + } history = append(history, r) } // 获取上一次请求的Cookies @@ -441,6 +444,7 @@ func (s *Session) Send(preq *models.PrepareRequest, req *url.Request) (*models.R s.request, err = http.NewRequest(preq.Method, preq.Url, preq.Body) if err != nil { log.Fatalln(err) + return nil, err } s.request.Header = *preq.Headers s.client.Jar = preq.Cookies @@ -449,19 +453,22 @@ func (s *Session) Send(preq *models.PrepareRequest, req *url.Request) (*models.R if err != nil { return nil, err } - response := s.buildResponse(resp, preq, req) + response, err := s.buildResponse(resp, preq, req) + if err != nil { + return nil, err + } response.History = history return response, nil } // 构建response参数 -func (s *Session) buildResponse(resp *http.Response, preq *models.PrepareRequest, req *url.Request) *models.Response { +func (s *Session) buildResponse(resp *http.Response, preq *models.PrepareRequest, req *url.Request) (*models.Response, error) { if resp.Body != nil { defer resp.Body.Close() } content, err := ioutil.ReadAll(resp.Body) if err != nil { - panic(err) + return nil, err } encoding := resp.Header.Get("Content-Encoding") DecompressBody(&content, encoding) @@ -481,7 +488,7 @@ func (s *Session) buildResponse(resp *http.Response, preq *models.PrepareRequest u, _ := url2.Parse(preq.Url) s.Cookies.SetCookies(u, resp.Cookies()) } - return response + return response, nil } // 解码Body数据 diff --git a/version.go b/version.go index f020bed..3deb575 100644 --- a/version.go +++ b/version.go @@ -2,6 +2,6 @@ package requests const ( NAME = "golang-requests" // 名称 - VERSION = "1.2.3" // 当前版本 + VERSION = "1.2.4" // 当前版本 USER_AGENT = NAME + VERSION // UA )