mirror of
https://github.com/gospider007/requests.git
synced 2025-12-24 13:57:52 +08:00
sync
This commit is contained in:
2
conn.go
2
conn.go
@@ -114,7 +114,7 @@ func (obj *connecotr) http1Req(task *reqTask) {
|
||||
}
|
||||
|
||||
func (obj *connecotr) http2Req(task *reqTask) {
|
||||
if task.res, task.err = obj.h2RawConn.RoundTrip(task.req); task.res != nil && task.err == nil {
|
||||
if task.res, task.err = obj.h2RawConn.RoundTripWithOrderHeaders(task.req, task.orderHeaders); task.res != nil && task.err == nil {
|
||||
obj.wrapBody(task)
|
||||
} else if task.err != nil {
|
||||
task.err = tools.WrapError(task.err, "http2 roundTrip error")
|
||||
|
||||
12
jar.go
12
jar.go
@@ -9,14 +9,14 @@ import (
|
||||
)
|
||||
|
||||
// cookies jar
|
||||
type jar struct {
|
||||
type Jar struct {
|
||||
jar *cookiejar.Jar
|
||||
}
|
||||
|
||||
// new cookies jar
|
||||
func NewJar() *jar {
|
||||
func NewJar() *Jar {
|
||||
j, _ := cookiejar.New(nil)
|
||||
return &jar{
|
||||
return &Jar{
|
||||
jar: j,
|
||||
}
|
||||
}
|
||||
@@ -46,7 +46,7 @@ func (obj *Client) ClearCookies() {
|
||||
}
|
||||
|
||||
// Get cookies
|
||||
func (obj *jar) GetCookies(u *url.URL) Cookies {
|
||||
func (obj *Jar) GetCookies(u *url.URL) Cookies {
|
||||
return obj.jar.Cookies(u)
|
||||
}
|
||||
func getDomain(u *url.URL) string {
|
||||
@@ -60,7 +60,7 @@ func getDomain(u *url.URL) string {
|
||||
}
|
||||
|
||||
// Set cookies
|
||||
func (obj *jar) SetCookies(u *url.URL, cookies ...any) error {
|
||||
func (obj *Jar) SetCookies(u *url.URL, cookies ...any) error {
|
||||
domain := getDomain(u)
|
||||
for _, cookie := range cookies {
|
||||
cooks, err := ReadCookies(cookie)
|
||||
@@ -81,7 +81,7 @@ func (obj *jar) SetCookies(u *url.URL, cookies ...any) error {
|
||||
}
|
||||
|
||||
// Clear cookies
|
||||
func (obj *jar) ClearCookies() {
|
||||
func (obj *Jar) ClearCookies() {
|
||||
jar, _ := cookiejar.New(nil)
|
||||
obj.jar = jar
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ type ClientOption struct {
|
||||
LocalAddr *net.TCPAddr
|
||||
Dns *net.UDPAddr //dns
|
||||
AddrType gtls.AddrType //dns parse addr type
|
||||
Jar *jar //custom cookies
|
||||
Jar *Jar //custom cookies
|
||||
|
||||
//other option
|
||||
GetProxy func(ctx context.Context, url *url.URL) (string, error) //proxy callback:support https,http,socks5 proxy
|
||||
@@ -79,7 +79,7 @@ type RequestOption struct {
|
||||
LocalAddr *net.TCPAddr
|
||||
Dns *net.UDPAddr //dns
|
||||
AddrType gtls.AddrType //dns parse addr type //tls timeout,default:15
|
||||
Jar *jar //custom cookies
|
||||
Jar *Jar //custom cookies
|
||||
|
||||
// other option
|
||||
Method string //method
|
||||
|
||||
@@ -245,10 +245,7 @@ func (obj *roundTripper) newReqTask(req *http.Request, ctxData *reqCtxData) *req
|
||||
task := new(reqTask)
|
||||
task.req = req
|
||||
task.emptyPool = make(chan struct{})
|
||||
task.orderHeaders = make([]string, len(ctxData.orderHeaders))
|
||||
for i, h := range ctxData.orderHeaders {
|
||||
task.orderHeaders[i] = textproto.CanonicalMIMEHeaderKey(h)
|
||||
}
|
||||
task.orderHeaders = ctxData.orderHeaders
|
||||
return task
|
||||
}
|
||||
func (obj *roundTripper) RoundTrip(req *http.Request) (response *http.Response, err error) {
|
||||
|
||||
3
tools.go
3
tools.go
@@ -102,6 +102,9 @@ func readTransfer(msg any, r *bufio.Reader) (err error)
|
||||
var filterHeaderKeys = ja3.DefaultOrderHeadersWithH2()
|
||||
|
||||
func httpWrite(r *http.Request, w *bufio.Writer, orderHeaders []string) (err error) {
|
||||
for i := range orderHeaders {
|
||||
orderHeaders[i] = textproto.CanonicalMIMEHeaderKey(orderHeaders[i])
|
||||
}
|
||||
host := r.Host
|
||||
if host == "" {
|
||||
host = r.URL.Host
|
||||
|
||||
Reference in New Issue
Block a user