From c7b7a5128aaab776fdc1794b3bf011515c37d1e3 Mon Sep 17 00:00:00 2001 From: root <1@root.com> Date: Wed, 9 Jul 2025 01:31:37 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BD=BFclient=E6=9C=89=E6=90=BA=E5=B8=A6?= =?UTF-8?q?=E4=B8=8A=E4=B8=8B=E6=96=87=E7=9A=84=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client.go | 11 ++++++++ context.go | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 context.go diff --git a/client.go b/client.go index bf9af8c..0193d44 100644 --- a/client.go +++ b/client.go @@ -73,6 +73,7 @@ type Client struct { responseBodyTransformer func(rawBody []byte, req *Request, resp *Response) (transformedBody []byte, err error) resultStateCheckFunc func(resp *Response) ResultState onError ErrorHook + ctx *clientContext // 使Client拥有携带上下文信息的能力 } type ErrorHook func(client *Client, req *Request, resp *Response, err error) @@ -82,6 +83,7 @@ func (c *Client) R() *Request { return &Request{ client: c, retryOption: c.retryOption.Clone(), + ctx: c.Context(), // 继承 Client 的上下文 } } @@ -1527,6 +1529,12 @@ func (c *Client) Clone() *Client { cc.afterResponse = cloneSlice(c.afterResponse) cc.dumpOptions = c.dumpOptions.Clone() cc.retryOption = c.retryOption.Clone() + + // clone context and clientContext + cc.ctx = &clientContext{ + context: c.ctx.context, + } + return &cc } @@ -1565,6 +1573,9 @@ func C() *Client { xmlMarshal: xml.Marshal, xmlUnmarshal: xml.Unmarshal, cookiejarFactory: memoryCookieJarFactory, + ctx: &clientContext{ + context: context.Background(), + }, } c.SetRedirectPolicy(DefaultRedirectPolicy()) c.initCookieJar() diff --git a/context.go b/context.go new file mode 100644 index 0000000..72a6807 --- /dev/null +++ b/context.go @@ -0,0 +1,78 @@ +package req + +import ( + "context" + "sync" +) + +// clientContext 为 Client 提供上下文能力,确保并发安全 +type clientContext struct { + mu sync.RWMutex + context context.Context +} + +// WithContext 添加上下文键值对,使用读写锁保证并发安全 +// 这种方式避免了 Clone 整个 Client 的开销 +func (c *Client) WithContext(key, value any) *Client { + if c.ctx == nil { + c.ctx = &clientContext{ + context: context.Background(), + } + } + + c.ctx.mu.Lock() + defer c.ctx.mu.Unlock() + + if c.ctx.context == nil { + c.ctx.context = context.Background() + } + c.ctx.context = context.WithValue(c.ctx.context, key, value) + return c +} + +// GetContext 获取上下文值,使用读锁保证并发安全 +func (c *Client) GetContext(key any) any { + if c.ctx == nil { + return context.Background().Value(key) + } + + c.ctx.mu.RLock() + defer c.ctx.mu.RUnlock() + + if c.ctx.context == nil { + return nil + } + return c.ctx.context.Value(key) +} + +// SetContext 设置基础上下文,使用写锁保证并发安全 +func (c *Client) SetContext(ctx context.Context) *Client { + if ctx == nil { + ctx = context.Background() + } + + if c.ctx == nil { + c.ctx = &clientContext{} + } + + c.ctx.mu.Lock() + defer c.ctx.mu.Unlock() + + c.ctx.context = ctx + return c +} + +// Context 获取当前上下文,使用读锁保证并发安全 +func (c *Client) Context() context.Context { + if c.ctx == nil { + return context.Background() + } + + c.ctx.mu.RLock() + defer c.ctx.mu.RUnlock() + + if c.ctx.context == nil { + return context.Background() + } + return c.ctx.context +} From 74bc55ad58b49c27cac76bed32bde715d2ef60b0 Mon Sep 17 00:00:00 2001 From: root <1@root.com> Date: Wed, 9 Jul 2025 02:31:30 +0900 Subject: [PATCH 2/2] 1 --- README.md | 30 +++++++++---------- client.go | 6 ++-- client_impersonate.go | 2 +- client_test.go | 4 +-- client_wrapper.go | 2 +- decode.go | 2 +- decode_test.go | 2 +- digest.go | 2 +- dump.go | 2 +- examples/find-popular-repo/go.mod | 20 ++++++------- examples/find-popular-repo/go.sum | 6 ++++ examples/find-popular-repo/main.go | 2 +- .../github/github.go | 2 +- examples/opentelemetry-jaeger-tracing/go.mod | 20 ++++++------- examples/opentelemetry-jaeger-tracing/go.sum | 6 ++++ examples/upload/uploadclient/go.mod | 20 ++++++------- examples/upload/uploadclient/go.sum | 6 ++++ examples/upload/uploadclient/main.go | 2 +- examples/uploadcallback/uploadclient/go.mod | 20 ++++++------- examples/uploadcallback/uploadclient/go.sum | 6 ++++ examples/uploadcallback/uploadclient/main.go | 2 +- go.mod | 2 +- header.go | 2 +- http.go | 2 +- http_request.go | 4 +-- internal/altsvcutil/altsvcutil.go | 4 +-- internal/altsvcutil/altsvcutil_test.go | 2 +- internal/charsets/charsets_test.go | 2 +- internal/chunked.go | 11 +++---- internal/godebug/godebug.go | 4 +-- internal/http2/frame.go | 4 +-- internal/http2/headermap.go | 2 +- internal/http2/transport.go | 18 +++++------ internal/http3/client.go | 4 +-- internal/http3/conn.go | 2 +- internal/http3/request_writer.go | 4 +-- internal/http3/stream.go | 6 ++-- internal/http3/transport.go | 2 +- internal/socks/socks_test.go | 2 +- internal/transport/option.go | 2 +- logger_test.go | 2 +- middleware.go | 4 +-- req_test.go | 4 +-- request.go | 6 ++-- request_test.go | 4 +-- response.go | 4 +-- retry_test.go | 2 +- roundtrip_js.go | 2 +- textproto_reader.go | 2 +- transfer.go | 8 ++--- transport.go | 30 +++++++++---------- 51 files changed, 168 insertions(+), 143 deletions(-) diff --git a/README.md b/README.md index 2e71bd0..99bafc6 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,8 @@
Simple Go HTTP client with Black Magic
-
-
+
+
@@ -38,7 +38,7 @@ Full documentation is available on the official website: https://req.cool.
You first need [Go](https://go.dev/) installed (version 1.24+ is required), then you can use the below Go command to install req:
``` sh
-go get github.com/imroc/req/v3
+go get github.com/0xobjc/req/v3
```
**Import**
@@ -46,7 +46,7 @@ go get github.com/imroc/req/v3
Import req to your code:
```go
-import "github.com/imroc/req/v3"
+import "github.com/0xobjc/req/v3"
```
**Basic Usage**
@@ -60,7 +60,7 @@ $ cat main.go
package main
import (
- "github.com/imroc/req/v3"
+ "github.com/0xobjc/req/v3"
)
func main() {
@@ -79,7 +79,7 @@ $ go run main.go
:method: GET
:path: /uuid
:scheme: https
-user-agent: req/v3 (https://github.com/imroc/req/v3)
+user-agent: req/v3 (https://github.com/0xobjc/req/v3)
accept-encoding: gzip
:status: 200
@@ -97,7 +97,7 @@ access-control-allow-credentials: true
2022/05/19 10:05:09.340974 DEBUG [req] HTTP/1.1 GET https://httpbin.org/uuid
GET /uuid HTTP/1.1
Host: httpbin.org
-User-Agent: req/v3 (https://github.com/imroc/req/v3)
+User-Agent: req/v3 (https://github.com/0xobjc/req/v3)
Accept-Encoding: gzip
HTTP/1.1 200 OK
@@ -136,7 +136,7 @@ package main
import (
"fmt"
- "github.com/imroc/req/v3"
+ "github.com/0xobjc/req/v3"
"log"
)
@@ -164,7 +164,7 @@ package main
import (
"fmt"
- "github.com/imroc/req/v3"
+ "github.com/0xobjc/req/v3"
"log"
"time"
)
@@ -232,7 +232,7 @@ package main
import (
"fmt"
- "github.com/imroc/req/v3"
+ "github.com/0xobjc/req/v3"
"log"
"time"
)
@@ -296,7 +296,7 @@ package main
import (
"fmt"
- "github.com/imroc/req/v3"
+ "github.com/0xobjc/req/v3"
"log"
)
@@ -337,7 +337,7 @@ func main() {
:method: POST
:path: /post
:scheme: https
-user-agent: req/v3 (https://github.com/imroc/req/v3)
+user-agent: req/v3 (https://github.com/0xobjc/req/v3)
content-type: application/json; charset=utf-8
content-length: 55
accept-encoding: gzip
@@ -362,7 +362,7 @@ access-control-allow-credentials: true
"Content-Length": "55",
"Content-Type": "application/json; charset=utf-8",
"Host": "httpbin.org",
- "User-Agent": "req/v3 (https://github.com/imroc/req/v3)",
+ "User-Agent": "req/v3 (https://github.com/0xobjc/req/v3)",
"X-Amzn-Trace-Id": "Root=1-628633d4-7559d633152b4307288ead2e"
},
"json": {
@@ -387,7 +387,7 @@ package main
import (
"fmt"
- "github.com/imroc/req/v3"
+ "github.com/0xobjc/req/v3"
)
type APIResponse struct {
@@ -425,7 +425,7 @@ Here is an example of building GitHub's SDK with req, using two styles (`GetUser
import (
"context"
"fmt"
- "github.com/imroc/req/v3"
+ "github.com/0xobjc/req/v3"
)
type ErrorMessage struct {
diff --git a/client.go b/client.go
index 0193d44..fd4aede 100644
--- a/client.go
+++ b/client.go
@@ -21,9 +21,9 @@ import (
utls "github.com/refraction-networking/utls"
"golang.org/x/net/publicsuffix"
- "github.com/imroc/req/v3/http2"
- "github.com/imroc/req/v3/internal/header"
- "github.com/imroc/req/v3/internal/util"
+ "github.com/0xobjc/req/v3/http2"
+ "github.com/0xobjc/req/v3/internal/header"
+ "github.com/0xobjc/req/v3/internal/util"
)
// DefaultClient returns the global default Client.
diff --git a/client_impersonate.go b/client_impersonate.go
index dfa9235..6ad12c7 100644
--- a/client_impersonate.go
+++ b/client_impersonate.go
@@ -7,7 +7,7 @@ import (
"strconv"
"strings"
- "github.com/imroc/req/v3/http2"
+ "github.com/0xobjc/req/v3/http2"
utls "github.com/refraction-networking/utls"
)
diff --git a/client_test.go b/client_test.go
index 456c108..419780f 100644
--- a/client_test.go
+++ b/client_test.go
@@ -17,8 +17,8 @@ import (
"testing"
"time"
- "github.com/imroc/req/v3/internal/header"
- "github.com/imroc/req/v3/internal/tests"
+ "github.com/0xobjc/req/v3/internal/header"
+ "github.com/0xobjc/req/v3/internal/tests"
"golang.org/x/net/publicsuffix"
)
diff --git a/client_wrapper.go b/client_wrapper.go
index 1d6368f..7bac81d 100644
--- a/client_wrapper.go
+++ b/client_wrapper.go
@@ -9,7 +9,7 @@ import (
"net/url"
"time"
- "github.com/imroc/req/v3/http2"
+ "github.com/0xobjc/req/v3/http2"
utls "github.com/refraction-networking/utls"
)
diff --git a/decode.go b/decode.go
index 825cffc..5285e5b 100644
--- a/decode.go
+++ b/decode.go
@@ -1,7 +1,7 @@
package req
import (
- "github.com/imroc/req/v3/internal/charsets"
+ "github.com/0xobjc/req/v3/internal/charsets"
"io"
"strings"
)
diff --git a/decode_test.go b/decode_test.go
index e65a8ea..18ee2e2 100644
--- a/decode_test.go
+++ b/decode_test.go
@@ -1,7 +1,7 @@
package req
import (
- "github.com/imroc/req/v3/internal/tests"
+ "github.com/0xobjc/req/v3/internal/tests"
"testing"
)
diff --git a/digest.go b/digest.go
index 0695d8c..e21384e 100644
--- a/digest.go
+++ b/digest.go
@@ -6,8 +6,8 @@ import (
"net/http"
"sync"
+ "github.com/0xobjc/req/v3/internal/header"
"github.com/icholy/digest"
- "github.com/imroc/req/v3/internal/header"
)
// cchal is a cached challenge and the number of times it's been used.
diff --git a/dump.go b/dump.go
index 77f9634..dc9f724 100644
--- a/dump.go
+++ b/dump.go
@@ -1,7 +1,7 @@
package req
import (
- "github.com/imroc/req/v3/internal/dump"
+ "github.com/0xobjc/req/v3/internal/dump"
"io"
"os"
)
diff --git a/examples/find-popular-repo/go.mod b/examples/find-popular-repo/go.mod
index 890f146..9b42566 100644
--- a/examples/find-popular-repo/go.mod
+++ b/examples/find-popular-repo/go.mod
@@ -1,12 +1,12 @@
module find-popular-repo
-go 1.22.0
+go 1.24
-toolchain go1.22.3
+toolchain go1.24.3
-replace github.com/imroc/req/v3 => ../../
+replace github.com/0xobjc/req/v3 => ../../
-require github.com/imroc/req/v3 v3.0.0
+require github.com/0xobjc/req/v3 v3.0.0
require (
github.com/cheekybits/genny v1.0.0 // indirect
@@ -21,11 +21,11 @@ require (
github.com/marten-seemann/qtls-go1-19 v0.1.1 // indirect
github.com/nxadm/tail v1.4.8 // indirect
github.com/onsi/ginkgo v1.16.5 // indirect
- golang.org/x/crypto v0.29.0 // indirect
- golang.org/x/mod v0.22.0 // indirect
- golang.org/x/net v0.31.0 // indirect
- golang.org/x/sys v0.27.0 // indirect
- golang.org/x/text v0.20.0 // indirect
- golang.org/x/tools v0.27.0 // indirect
+ golang.org/x/crypto v0.39.0 // indirect
+ golang.org/x/mod v0.25.0 // indirect
+ golang.org/x/net v0.41.0 // indirect
+ golang.org/x/sys v0.33.0 // indirect
+ golang.org/x/text v0.26.0 // indirect
+ golang.org/x/tools v0.34.0 // indirect
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
)
diff --git a/examples/find-popular-repo/go.sum b/examples/find-popular-repo/go.sum
index b70f266..e3d94b4 100644
--- a/examples/find-popular-repo/go.sum
+++ b/examples/find-popular-repo/go.sum
@@ -173,6 +173,7 @@ golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98y
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70=
golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg=
+golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -185,6 +186,7 @@ golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
+golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -210,6 +212,7 @@ golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM=
+golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
@@ -251,6 +254,7 @@ golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -264,6 +268,7 @@ golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4=
+golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -283,6 +288,7 @@ golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM
golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc=
golang.org/x/tools v0.25.0/go.mod h1:/vtpO8WL1N9cQC3FN5zPqb//fRXskFHbLKk4OW1Q7rg=
golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q=
+golang.org/x/tools v0.34.0/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
diff --git a/examples/find-popular-repo/main.go b/examples/find-popular-repo/main.go
index 44708f3..5199c21 100644
--- a/examples/find-popular-repo/main.go
+++ b/examples/find-popular-repo/main.go
@@ -4,7 +4,7 @@ import (
"fmt"
"strconv"
- "github.com/imroc/req/v3"
+ "github.com/0xobjc/req/v3"
)
// Change the name if you want
diff --git a/examples/opentelemetry-jaeger-tracing/github/github.go b/examples/opentelemetry-jaeger-tracing/github/github.go
index b789830..c979148 100644
--- a/examples/opentelemetry-jaeger-tracing/github/github.go
+++ b/examples/opentelemetry-jaeger-tracing/github/github.go
@@ -3,7 +3,7 @@ package github
import (
"context"
"fmt"
- "github.com/imroc/req/v3"
+ "github.com/0xobjc/req/v3"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/codes"
"go.opentelemetry.io/otel/trace"
diff --git a/examples/opentelemetry-jaeger-tracing/go.mod b/examples/opentelemetry-jaeger-tracing/go.mod
index 6454f31..2b889db 100644
--- a/examples/opentelemetry-jaeger-tracing/go.mod
+++ b/examples/opentelemetry-jaeger-tracing/go.mod
@@ -1,13 +1,13 @@
module opentelemetry-jaeger-tracing
-go 1.22.0
+go 1.24
-toolchain go1.22.3
+toolchain go1.24.3
-replace github.com/imroc/req/v3 => ../../
+replace github.com/0xobjc/req/v3 => ../../
require (
- github.com/imroc/req/v3 v3.0.0
+ github.com/0xobjc/req/v3 v3.0.0
go.opentelemetry.io/otel v1.9.0
go.opentelemetry.io/otel/exporters/jaeger v1.9.0
go.opentelemetry.io/otel/sdk v1.9.0
@@ -30,11 +30,11 @@ require (
github.com/marten-seemann/qtls-go1-19 v0.1.0 // indirect
github.com/nxadm/tail v1.4.8 // indirect
github.com/onsi/ginkgo v1.16.5 // indirect
- golang.org/x/crypto v0.29.0 // indirect
- golang.org/x/mod v0.22.0 // indirect
- golang.org/x/net v0.31.0 // indirect
- golang.org/x/sys v0.27.0 // indirect
- golang.org/x/text v0.20.0 // indirect
- golang.org/x/tools v0.27.0 // indirect
+ golang.org/x/crypto v0.39.0 // indirect
+ golang.org/x/mod v0.25.0 // indirect
+ golang.org/x/net v0.41.0 // indirect
+ golang.org/x/sys v0.33.0 // indirect
+ golang.org/x/text v0.26.0 // indirect
+ golang.org/x/tools v0.34.0 // indirect
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
)
diff --git a/examples/opentelemetry-jaeger-tracing/go.sum b/examples/opentelemetry-jaeger-tracing/go.sum
index 768df1c..fe5009b 100644
--- a/examples/opentelemetry-jaeger-tracing/go.sum
+++ b/examples/opentelemetry-jaeger-tracing/go.sum
@@ -184,6 +184,7 @@ golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98y
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70=
golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg=
+golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -196,6 +197,7 @@ golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
+golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -224,6 +226,7 @@ golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM=
+golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
@@ -269,6 +272,7 @@ golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -283,6 +287,7 @@ golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4=
+golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -301,6 +306,7 @@ golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM
golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc=
golang.org/x/tools v0.25.0/go.mod h1:/vtpO8WL1N9cQC3FN5zPqb//fRXskFHbLKk4OW1Q7rg=
golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q=
+golang.org/x/tools v0.34.0/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
diff --git a/examples/upload/uploadclient/go.mod b/examples/upload/uploadclient/go.mod
index e338f5c..9746e7c 100644
--- a/examples/upload/uploadclient/go.mod
+++ b/examples/upload/uploadclient/go.mod
@@ -1,12 +1,12 @@
module uploadclient
-go 1.22.0
+go 1.24
-toolchain go1.22.3
+toolchain go1.24.3
-replace github.com/imroc/req/v3 => ../../../
+replace github.com/0xobjc/req/v3 => ../../../
-require github.com/imroc/req/v3 v3.0.0
+require github.com/0xobjc/req/v3 v3.0.0
require (
github.com/cheekybits/genny v1.0.0 // indirect
@@ -22,11 +22,11 @@ require (
github.com/marten-seemann/qtls-go1-19 v0.1.0 // indirect
github.com/nxadm/tail v1.4.8 // indirect
github.com/onsi/ginkgo v1.16.5 // indirect
- golang.org/x/crypto v0.29.0 // indirect
- golang.org/x/mod v0.22.0 // indirect
- golang.org/x/net v0.31.0 // indirect
- golang.org/x/sys v0.27.0 // indirect
- golang.org/x/text v0.20.0 // indirect
- golang.org/x/tools v0.27.0 // indirect
+ golang.org/x/crypto v0.39.0 // indirect
+ golang.org/x/mod v0.25.0 // indirect
+ golang.org/x/net v0.41.0 // indirect
+ golang.org/x/sys v0.33.0 // indirect
+ golang.org/x/text v0.26.0 // indirect
+ golang.org/x/tools v0.34.0 // indirect
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
)
diff --git a/examples/upload/uploadclient/go.sum b/examples/upload/uploadclient/go.sum
index b445b36..fcee01b 100644
--- a/examples/upload/uploadclient/go.sum
+++ b/examples/upload/uploadclient/go.sum
@@ -172,6 +172,7 @@ golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98y
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70=
golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg=
+golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -184,6 +185,7 @@ golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
+golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -214,6 +216,7 @@ golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM=
+golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
@@ -258,6 +261,7 @@ golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -272,6 +276,7 @@ golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4=
+golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -290,6 +295,7 @@ golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM
golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc=
golang.org/x/tools v0.25.0/go.mod h1:/vtpO8WL1N9cQC3FN5zPqb//fRXskFHbLKk4OW1Q7rg=
golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q=
+golang.org/x/tools v0.34.0/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
diff --git a/examples/upload/uploadclient/main.go b/examples/upload/uploadclient/main.go
index d9c8fd3..8cdf898 100644
--- a/examples/upload/uploadclient/main.go
+++ b/examples/upload/uploadclient/main.go
@@ -1,7 +1,7 @@
package main
import (
- "github.com/imroc/req/v3"
+ "github.com/0xobjc/req/v3"
)
func main() {
diff --git a/examples/uploadcallback/uploadclient/go.mod b/examples/uploadcallback/uploadclient/go.mod
index e338f5c..9746e7c 100644
--- a/examples/uploadcallback/uploadclient/go.mod
+++ b/examples/uploadcallback/uploadclient/go.mod
@@ -1,12 +1,12 @@
module uploadclient
-go 1.22.0
+go 1.24
-toolchain go1.22.3
+toolchain go1.24.3
-replace github.com/imroc/req/v3 => ../../../
+replace github.com/0xobjc/req/v3 => ../../../
-require github.com/imroc/req/v3 v3.0.0
+require github.com/0xobjc/req/v3 v3.0.0
require (
github.com/cheekybits/genny v1.0.0 // indirect
@@ -22,11 +22,11 @@ require (
github.com/marten-seemann/qtls-go1-19 v0.1.0 // indirect
github.com/nxadm/tail v1.4.8 // indirect
github.com/onsi/ginkgo v1.16.5 // indirect
- golang.org/x/crypto v0.29.0 // indirect
- golang.org/x/mod v0.22.0 // indirect
- golang.org/x/net v0.31.0 // indirect
- golang.org/x/sys v0.27.0 // indirect
- golang.org/x/text v0.20.0 // indirect
- golang.org/x/tools v0.27.0 // indirect
+ golang.org/x/crypto v0.39.0 // indirect
+ golang.org/x/mod v0.25.0 // indirect
+ golang.org/x/net v0.41.0 // indirect
+ golang.org/x/sys v0.33.0 // indirect
+ golang.org/x/text v0.26.0 // indirect
+ golang.org/x/tools v0.34.0 // indirect
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
)
diff --git a/examples/uploadcallback/uploadclient/go.sum b/examples/uploadcallback/uploadclient/go.sum
index b445b36..fcee01b 100644
--- a/examples/uploadcallback/uploadclient/go.sum
+++ b/examples/uploadcallback/uploadclient/go.sum
@@ -172,6 +172,7 @@ golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98y
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70=
golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg=
+golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -184,6 +185,7 @@ golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
+golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -214,6 +216,7 @@ golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM=
+golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
@@ -258,6 +261,7 @@ golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -272,6 +276,7 @@ golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4=
+golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -290,6 +295,7 @@ golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM
golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc=
golang.org/x/tools v0.25.0/go.mod h1:/vtpO8WL1N9cQC3FN5zPqb//fRXskFHbLKk4OW1Q7rg=
golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q=
+golang.org/x/tools v0.34.0/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
diff --git a/examples/uploadcallback/uploadclient/main.go b/examples/uploadcallback/uploadclient/main.go
index 19dd217..2109b1b 100644
--- a/examples/uploadcallback/uploadclient/main.go
+++ b/examples/uploadcallback/uploadclient/main.go
@@ -2,9 +2,9 @@ package main
import (
"fmt"
+ "github.com/0xobjc/req/v3"
"io"
"time"
- "github.com/imroc/req/v3"
)
type SlowReader struct {
diff --git a/go.mod b/go.mod
index 8edf92e..163dff8 100644
--- a/go.mod
+++ b/go.mod
@@ -1,4 +1,4 @@
-module github.com/imroc/req/v3
+module github.com/0xobjc/req/v3
go 1.24
diff --git a/header.go b/header.go
index 9ded862..e7d2164 100644
--- a/header.go
+++ b/header.go
@@ -10,7 +10,7 @@ import (
"golang.org/x/net/http/httpguts"
- "github.com/imroc/req/v3/internal/header"
+ "github.com/0xobjc/req/v3/internal/header"
)
var headerNewlineToSpace = strings.NewReplacer("\n", " ", "\r", " ")
diff --git a/http.go b/http.go
index 61a6367..d7e1deb 100644
--- a/http.go
+++ b/http.go
@@ -8,7 +8,7 @@ import (
"net/textproto"
"strings"
- "github.com/imroc/req/v3/internal/ascii"
+ "github.com/0xobjc/req/v3/internal/ascii"
"golang.org/x/net/http/httpguts"
"golang.org/x/net/idna"
)
diff --git a/http_request.go b/http_request.go
index 5816de4..6b0474f 100644
--- a/http_request.go
+++ b/http_request.go
@@ -7,8 +7,8 @@ import (
"golang.org/x/net/http/httpguts"
- "github.com/imroc/req/v3/internal/ascii"
- "github.com/imroc/req/v3/internal/header"
+ "github.com/0xobjc/req/v3/internal/ascii"
+ "github.com/0xobjc/req/v3/internal/header"
)
// Given a string of the form "host", "host:port", or "[ipv6::address]:port",
diff --git a/internal/altsvcutil/altsvcutil.go b/internal/altsvcutil/altsvcutil.go
index 84978d7..16af45b 100644
--- a/internal/altsvcutil/altsvcutil.go
+++ b/internal/altsvcutil/altsvcutil.go
@@ -3,8 +3,8 @@ package altsvcutil
import (
"bytes"
"fmt"
- "github.com/imroc/req/v3/internal/netutil"
- "github.com/imroc/req/v3/pkg/altsvc"
+ "github.com/0xobjc/req/v3/internal/netutil"
+ "github.com/0xobjc/req/v3/pkg/altsvc"
"io"
"net"
"net/url"
diff --git a/internal/altsvcutil/altsvcutil_test.go b/internal/altsvcutil/altsvcutil_test.go
index 3cbc001..ead868d 100644
--- a/internal/altsvcutil/altsvcutil_test.go
+++ b/internal/altsvcutil/altsvcutil_test.go
@@ -1,7 +1,7 @@
package altsvcutil
import (
- "github.com/imroc/req/v3/internal/tests"
+ "github.com/0xobjc/req/v3/internal/tests"
"testing"
)
diff --git a/internal/charsets/charsets_test.go b/internal/charsets/charsets_test.go
index 28cd698..795cf37 100644
--- a/internal/charsets/charsets_test.go
+++ b/internal/charsets/charsets_test.go
@@ -5,7 +5,7 @@
package charsets
import (
- "github.com/imroc/req/v3/internal/tests"
+ "github.com/0xobjc/req/v3/internal/tests"
"os"
"runtime"
"testing"
diff --git a/internal/chunked.go b/internal/chunked.go
index dec4ddc..67a6591 100644
--- a/internal/chunked.go
+++ b/internal/chunked.go
@@ -13,7 +13,7 @@ import (
"bytes"
"errors"
"fmt"
- "github.com/imroc/req/v3/internal/util"
+ "github.com/0xobjc/req/v3/internal/util"
"io"
)
@@ -165,10 +165,11 @@ var semi = []byte(";")
// removeChunkExtension removes any chunk-extension from p.
// For example,
-// "0" => "0"
-// "0;token" => "0"
-// "0;token=val" => "0"
-// `0;token="quoted string"` => "0"
+//
+// "0" => "0"
+// "0;token" => "0"
+// "0;token=val" => "0"
+// `0;token="quoted string"` => "0"
func removeChunkExtension(p []byte) ([]byte, error) {
p, _, _ = util.CutBytes(p, semi)
// TODO: care about exact syntax of chunk extensions? We're
diff --git a/internal/godebug/godebug.go b/internal/godebug/godebug.go
index f5a0f53..8b5b771 100644
--- a/internal/godebug/godebug.go
+++ b/internal/godebug/godebug.go
@@ -38,8 +38,8 @@ import (
"sync/atomic"
_ "unsafe" // go:linkname
- "github.com/imroc/req/v3/internal/bisect"
- "github.com/imroc/req/v3/internal/godebugs"
+ "github.com/0xobjc/req/v3/internal/bisect"
+ "github.com/0xobjc/req/v3/internal/godebugs"
)
// A Setting is a single setting in the $GODEBUG environment variable.
diff --git a/internal/http2/frame.go b/internal/http2/frame.go
index 23c1093..25c489d 100644
--- a/internal/http2/frame.go
+++ b/internal/http2/frame.go
@@ -16,8 +16,8 @@ import (
"strings"
"sync"
- "github.com/imroc/req/v3/http2"
- "github.com/imroc/req/v3/internal/dump"
+ "github.com/0xobjc/req/v3/http2"
+ "github.com/0xobjc/req/v3/internal/dump"
"golang.org/x/net/http/httpguts"
"golang.org/x/net/http2/hpack"
)
diff --git a/internal/http2/headermap.go b/internal/http2/headermap.go
index a8e01cf..6277d7a 100644
--- a/internal/http2/headermap.go
+++ b/internal/http2/headermap.go
@@ -5,7 +5,7 @@
package http2
import (
- "github.com/imroc/req/v3/internal/ascii"
+ "github.com/0xobjc/req/v3/internal/ascii"
"net/http"
"sync"
)
diff --git a/internal/http2/transport.go b/internal/http2/transport.go
index 3677f19..437cde0 100644
--- a/internal/http2/transport.go
+++ b/internal/http2/transport.go
@@ -35,15 +35,15 @@ import (
"golang.org/x/net/http2/hpack"
"golang.org/x/net/idna"
- "github.com/imroc/req/v3/http2"
- "github.com/imroc/req/v3/internal/ascii"
- "github.com/imroc/req/v3/internal/common"
- "github.com/imroc/req/v3/internal/compress"
- "github.com/imroc/req/v3/internal/dump"
- "github.com/imroc/req/v3/internal/header"
- "github.com/imroc/req/v3/internal/netutil"
- "github.com/imroc/req/v3/internal/transport"
- reqtls "github.com/imroc/req/v3/pkg/tls"
+ "github.com/0xobjc/req/v3/http2"
+ "github.com/0xobjc/req/v3/internal/ascii"
+ "github.com/0xobjc/req/v3/internal/common"
+ "github.com/0xobjc/req/v3/internal/compress"
+ "github.com/0xobjc/req/v3/internal/dump"
+ "github.com/0xobjc/req/v3/internal/header"
+ "github.com/0xobjc/req/v3/internal/netutil"
+ "github.com/0xobjc/req/v3/internal/transport"
+ reqtls "github.com/0xobjc/req/v3/pkg/tls"
)
const (
diff --git a/internal/http3/client.go b/internal/http3/client.go
index aaec15e..255e666 100644
--- a/internal/http3/client.go
+++ b/internal/http3/client.go
@@ -11,8 +11,8 @@ import (
"net/textproto"
"time"
- "github.com/imroc/req/v3/internal/dump"
- "github.com/imroc/req/v3/internal/transport"
+ "github.com/0xobjc/req/v3/internal/dump"
+ "github.com/0xobjc/req/v3/internal/transport"
"github.com/quic-go/quic-go"
"github.com/quic-go/quic-go/quicvarint"
diff --git a/internal/http3/conn.go b/internal/http3/conn.go
index ab790f8..bcb4830 100644
--- a/internal/http3/conn.go
+++ b/internal/http3/conn.go
@@ -13,7 +13,7 @@ import (
"sync/atomic"
"time"
- "github.com/imroc/req/v3/internal/transport"
+ "github.com/0xobjc/req/v3/internal/transport"
"github.com/quic-go/quic-go"
"github.com/quic-go/quic-go/quicvarint"
diff --git a/internal/http3/request_writer.go b/internal/http3/request_writer.go
index 8f2e3a1..e267e05 100644
--- a/internal/http3/request_writer.go
+++ b/internal/http3/request_writer.go
@@ -12,8 +12,8 @@ import (
"strings"
"sync"
- "github.com/imroc/req/v3/internal/dump"
- reqheader "github.com/imroc/req/v3/internal/header"
+ "github.com/0xobjc/req/v3/internal/dump"
+ reqheader "github.com/0xobjc/req/v3/internal/header"
"github.com/quic-go/qpack"
"golang.org/x/net/http/httpguts"
diff --git a/internal/http3/stream.go b/internal/http3/stream.go
index d23ae39..ec4e2bd 100644
--- a/internal/http3/stream.go
+++ b/internal/http3/stream.go
@@ -9,9 +9,9 @@ import (
"net/http/httptrace"
"time"
- "github.com/imroc/req/v3/internal/compress"
- "github.com/imroc/req/v3/internal/dump"
- "github.com/imroc/req/v3/internal/transport"
+ "github.com/0xobjc/req/v3/internal/compress"
+ "github.com/0xobjc/req/v3/internal/dump"
+ "github.com/0xobjc/req/v3/internal/transport"
"github.com/quic-go/quic-go"
"github.com/quic-go/qpack"
diff --git a/internal/http3/transport.go b/internal/http3/transport.go
index 04bd331..3a814db 100644
--- a/internal/http3/transport.go
+++ b/internal/http3/transport.go
@@ -17,7 +17,7 @@ import (
"golang.org/x/net/http/httpguts"
- "github.com/imroc/req/v3/internal/transport"
+ "github.com/0xobjc/req/v3/internal/transport"
"github.com/quic-go/quic-go"
)
diff --git a/internal/socks/socks_test.go b/internal/socks/socks_test.go
index 824a09d..da050da 100644
--- a/internal/socks/socks_test.go
+++ b/internal/socks/socks_test.go
@@ -3,7 +3,7 @@ package socks
import (
"bytes"
"context"
- "github.com/imroc/req/v3/internal/tests"
+ "github.com/0xobjc/req/v3/internal/tests"
"strings"
"testing"
)
diff --git a/internal/transport/option.go b/internal/transport/option.go
index d45b51c..f253f1e 100644
--- a/internal/transport/option.go
+++ b/internal/transport/option.go
@@ -8,7 +8,7 @@ import (
"net/url"
"time"
- "github.com/imroc/req/v3/internal/dump"
+ "github.com/0xobjc/req/v3/internal/dump"
)
// Options is transport's options.
diff --git a/logger_test.go b/logger_test.go
index 8a456da..bd6eaf8 100644
--- a/logger_test.go
+++ b/logger_test.go
@@ -5,7 +5,7 @@ import (
"log"
"testing"
- "github.com/imroc/req/v3/internal/tests"
+ "github.com/0xobjc/req/v3/internal/tests"
)
func TestLogger(t *testing.T) {
diff --git a/middleware.go b/middleware.go
index c3a7dba..d4c4999 100644
--- a/middleware.go
+++ b/middleware.go
@@ -14,8 +14,8 @@ import (
"strings"
"time"
- "github.com/imroc/req/v3/internal/header"
- "github.com/imroc/req/v3/internal/util"
+ "github.com/0xobjc/req/v3/internal/header"
+ "github.com/0xobjc/req/v3/internal/util"
)
type (
diff --git a/req_test.go b/req_test.go
index 9942bcb..57ffcf8 100644
--- a/req_test.go
+++ b/req_test.go
@@ -18,8 +18,8 @@ import (
"testing"
"unsafe"
- "github.com/imroc/req/v3/internal/header"
- "github.com/imroc/req/v3/internal/tests"
+ "github.com/0xobjc/req/v3/internal/header"
+ "github.com/0xobjc/req/v3/internal/tests"
"golang.org/x/text/encoding/simplifiedchinese"
"golang.org/x/text/transform"
)
diff --git a/request.go b/request.go
index d950477..31dc0c2 100644
--- a/request.go
+++ b/request.go
@@ -16,9 +16,9 @@ import (
"github.com/hashicorp/go-multierror"
- "github.com/imroc/req/v3/internal/dump"
- "github.com/imroc/req/v3/internal/header"
- "github.com/imroc/req/v3/internal/util"
+ "github.com/0xobjc/req/v3/internal/dump"
+ "github.com/0xobjc/req/v3/internal/header"
+ "github.com/0xobjc/req/v3/internal/util"
)
// Request struct is used to compose and fire individual request from
diff --git a/request_test.go b/request_test.go
index 0275980..310d35c 100644
--- a/request_test.go
+++ b/request_test.go
@@ -14,8 +14,8 @@ import (
"testing"
"time"
- "github.com/imroc/req/v3/internal/header"
- "github.com/imroc/req/v3/internal/tests"
+ "github.com/0xobjc/req/v3/internal/header"
+ "github.com/0xobjc/req/v3/internal/tests"
)
func TestMustSendMethods(t *testing.T) {
diff --git a/response.go b/response.go
index 0c17619..195223a 100644
--- a/response.go
+++ b/response.go
@@ -6,8 +6,8 @@ import (
"strings"
"time"
- "github.com/imroc/req/v3/internal/header"
- "github.com/imroc/req/v3/internal/util"
+ "github.com/0xobjc/req/v3/internal/header"
+ "github.com/0xobjc/req/v3/internal/util"
)
// Response is the http response.
diff --git a/retry_test.go b/retry_test.go
index 5814b5f..1b72b33 100644
--- a/retry_test.go
+++ b/retry_test.go
@@ -8,7 +8,7 @@ import (
"testing"
"time"
- "github.com/imroc/req/v3/internal/tests"
+ "github.com/0xobjc/req/v3/internal/tests"
)
func TestRetryBackOff(t *testing.T) {
diff --git a/roundtrip_js.go b/roundtrip_js.go
index 958d9a4..39f95d4 100644
--- a/roundtrip_js.go
+++ b/roundtrip_js.go
@@ -15,7 +15,7 @@ import (
"strings"
"syscall/js"
- "github.com/imroc/req/v3/internal/ascii"
+ "github.com/0xobjc/req/v3/internal/ascii"
)
var uint8Array = js.Global().Get("Uint8Array")
diff --git a/textproto_reader.go b/textproto_reader.go
index 1c09872..5aedaf2 100644
--- a/textproto_reader.go
+++ b/textproto_reader.go
@@ -13,7 +13,7 @@ import (
"net/textproto"
"sync"
- "github.com/imroc/req/v3/internal/dump"
+ "github.com/0xobjc/req/v3/internal/dump"
)
func isASCIILetter(b byte) bool {
diff --git a/transfer.go b/transfer.go
index 3ff04e5..13884ce 100644
--- a/transfer.go
+++ b/transfer.go
@@ -19,10 +19,10 @@ import (
"sync"
"time"
- "github.com/imroc/req/v3/internal"
- "github.com/imroc/req/v3/internal/ascii"
- "github.com/imroc/req/v3/internal/dump"
- "github.com/imroc/req/v3/internal/godebug"
+ "github.com/0xobjc/req/v3/internal"
+ "github.com/0xobjc/req/v3/internal/ascii"
+ "github.com/0xobjc/req/v3/internal/dump"
+ "github.com/0xobjc/req/v3/internal/godebug"
"golang.org/x/net/http/httpguts"
)
diff --git a/transport.go b/transport.go
index ab6be72..9cdb4e3 100644
--- a/transport.go
+++ b/transport.go
@@ -32,21 +32,21 @@ import (
"time"
_ "unsafe"
- "github.com/imroc/req/v3/http2"
- "github.com/imroc/req/v3/internal/altsvcutil"
- "github.com/imroc/req/v3/internal/ascii"
- "github.com/imroc/req/v3/internal/common"
- "github.com/imroc/req/v3/internal/compress"
- "github.com/imroc/req/v3/internal/dump"
- "github.com/imroc/req/v3/internal/header"
- h2internal "github.com/imroc/req/v3/internal/http2"
- "github.com/imroc/req/v3/internal/http3"
- "github.com/imroc/req/v3/internal/netutil"
- "github.com/imroc/req/v3/internal/socks"
- "github.com/imroc/req/v3/internal/transport"
- "github.com/imroc/req/v3/internal/util"
- "github.com/imroc/req/v3/pkg/altsvc"
- reqtls "github.com/imroc/req/v3/pkg/tls"
+ "github.com/0xobjc/req/v3/http2"
+ "github.com/0xobjc/req/v3/internal/altsvcutil"
+ "github.com/0xobjc/req/v3/internal/ascii"
+ "github.com/0xobjc/req/v3/internal/common"
+ "github.com/0xobjc/req/v3/internal/compress"
+ "github.com/0xobjc/req/v3/internal/dump"
+ "github.com/0xobjc/req/v3/internal/header"
+ h2internal "github.com/0xobjc/req/v3/internal/http2"
+ "github.com/0xobjc/req/v3/internal/http3"
+ "github.com/0xobjc/req/v3/internal/netutil"
+ "github.com/0xobjc/req/v3/internal/socks"
+ "github.com/0xobjc/req/v3/internal/transport"
+ "github.com/0xobjc/req/v3/internal/util"
+ "github.com/0xobjc/req/v3/pkg/altsvc"
+ reqtls "github.com/0xobjc/req/v3/pkg/tls"
htmlcharset "golang.org/x/net/html/charset"
"golang.org/x/text/encoding/ianaindex"