mirror of
https://github.com/gospider007/requests.git
synced 2025-12-24 13:57:52 +08:00
sync
This commit is contained in:
43
sepc.go
43
sepc.go
@@ -112,31 +112,46 @@ func (obj *RequestOption) initSpec() error {
|
||||
return err
|
||||
}
|
||||
obj.gospiderSpec = gospiderSpec
|
||||
if gospiderSpec.H1Spec != nil {
|
||||
if obj.orderHeaders == nil {
|
||||
orderData := NewOrderData()
|
||||
if obj.orderHeaders == nil {
|
||||
if len(obj.OrderHeaders) > 0 {
|
||||
obj.orderHeaders = NewOrderData()
|
||||
var ods [][2]string
|
||||
if gospiderSpec.H1Spec != nil {
|
||||
ods = gospiderSpec.H1Spec.OrderHeaders
|
||||
} else if gospiderSpec.H2Spec != nil {
|
||||
ods = gospiderSpec.H2Spec.OrderHeaders
|
||||
}
|
||||
for _, key := range obj.OrderHeaders {
|
||||
key = textproto.CanonicalMIMEHeaderKey(key)
|
||||
var val any
|
||||
for _, kv := range ods {
|
||||
if key == kv[0] && slices.Contains(tools.DefaultHeaderKeys, kv[0]) {
|
||||
val = kv[1]
|
||||
break
|
||||
}
|
||||
}
|
||||
obj.orderHeaders.Add(key, val)
|
||||
}
|
||||
} else if gospiderSpec.H1Spec != nil {
|
||||
obj.orderHeaders = NewOrderData()
|
||||
for _, kv := range gospiderSpec.H1Spec.OrderHeaders {
|
||||
if slices.Contains(tools.DefaultHeaderKeys, kv[0]) {
|
||||
orderData.Add(kv[0], kv[1])
|
||||
obj.orderHeaders.Add(kv[0], kv[1])
|
||||
} else {
|
||||
orderData.Add(kv[0], nil)
|
||||
obj.orderHeaders.Add(kv[0], nil)
|
||||
}
|
||||
}
|
||||
obj.orderHeaders = orderData
|
||||
}
|
||||
}
|
||||
if gospiderSpec.H2Spec != nil {
|
||||
if obj.orderHeaders == nil {
|
||||
orderData := NewOrderData()
|
||||
} else if gospiderSpec.H2Spec != nil {
|
||||
obj.orderHeaders = NewOrderData()
|
||||
for _, kv := range gospiderSpec.H2Spec.OrderHeaders {
|
||||
key := textproto.CanonicalMIMEHeaderKey(kv[0])
|
||||
if slices.Contains(tools.DefaultHeaderKeys, key) {
|
||||
orderData.Add(key, kv[1])
|
||||
obj.orderHeaders.Add(key, kv[1])
|
||||
} else {
|
||||
orderData.Add(key, nil)
|
||||
obj.orderHeaders.Add(key, nil)
|
||||
}
|
||||
}
|
||||
obj.orderHeaders = orderData
|
||||
|
||||
}
|
||||
}
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user