|
|
@@ -71,6 +71,12 @@ func DoApiRequest(a Adaptor, c *gin.Context, info *common.RelayInfo, requestBody
|
|
|
return nil, fmt.Errorf("new request failed: %w", err)
|
|
|
}
|
|
|
headers := req.Header
|
|
|
+ err = a.SetupRequestHeader(c, &headers, info)
|
|
|
+ if err != nil {
|
|
|
+ return nil, fmt.Errorf("setup request header failed: %w", err)
|
|
|
+ }
|
|
|
+ // 在 SetupRequestHeader 之后应用 Header Override,确保用户设置优先级最高
|
|
|
+ // 这样可以覆盖默认的 Authorization header 设置
|
|
|
headerOverride, err := processHeaderOverride(info)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
@@ -78,10 +84,6 @@ func DoApiRequest(a Adaptor, c *gin.Context, info *common.RelayInfo, requestBody
|
|
|
for key, value := range headerOverride {
|
|
|
headers.Set(key, value)
|
|
|
}
|
|
|
- err = a.SetupRequestHeader(c, &headers, info)
|
|
|
- if err != nil {
|
|
|
- return nil, fmt.Errorf("setup request header failed: %w", err)
|
|
|
- }
|
|
|
resp, err := doRequest(c, req, info)
|
|
|
if err != nil {
|
|
|
return nil, fmt.Errorf("do request failed: %w", err)
|
|
|
@@ -104,6 +106,12 @@ func DoFormRequest(a Adaptor, c *gin.Context, info *common.RelayInfo, requestBod
|
|
|
// set form data
|
|
|
req.Header.Set("Content-Type", c.Request.Header.Get("Content-Type"))
|
|
|
headers := req.Header
|
|
|
+ err = a.SetupRequestHeader(c, &headers, info)
|
|
|
+ if err != nil {
|
|
|
+ return nil, fmt.Errorf("setup request header failed: %w", err)
|
|
|
+ }
|
|
|
+ // 在 SetupRequestHeader 之后应用 Header Override,确保用户设置优先级最高
|
|
|
+ // 这样可以覆盖默认的 Authorization header 设置
|
|
|
headerOverride, err := processHeaderOverride(info)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
@@ -111,10 +119,6 @@ func DoFormRequest(a Adaptor, c *gin.Context, info *common.RelayInfo, requestBod
|
|
|
for key, value := range headerOverride {
|
|
|
headers.Set(key, value)
|
|
|
}
|
|
|
- err = a.SetupRequestHeader(c, &headers, info)
|
|
|
- if err != nil {
|
|
|
- return nil, fmt.Errorf("setup request header failed: %w", err)
|
|
|
- }
|
|
|
resp, err := doRequest(c, req, info)
|
|
|
if err != nil {
|
|
|
return nil, fmt.Errorf("do request failed: %w", err)
|
|
|
@@ -128,6 +132,12 @@ func DoWssRequest(a Adaptor, c *gin.Context, info *common.RelayInfo, requestBody
|
|
|
return nil, fmt.Errorf("get request url failed: %w", err)
|
|
|
}
|
|
|
targetHeader := http.Header{}
|
|
|
+ err = a.SetupRequestHeader(c, &targetHeader, info)
|
|
|
+ if err != nil {
|
|
|
+ return nil, fmt.Errorf("setup request header failed: %w", err)
|
|
|
+ }
|
|
|
+ // 在 SetupRequestHeader 之后应用 Header Override,确保用户设置优先级最高
|
|
|
+ // 这样可以覆盖默认的 Authorization header 设置
|
|
|
headerOverride, err := processHeaderOverride(info)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
@@ -135,10 +145,6 @@ func DoWssRequest(a Adaptor, c *gin.Context, info *common.RelayInfo, requestBody
|
|
|
for key, value := range headerOverride {
|
|
|
targetHeader.Set(key, value)
|
|
|
}
|
|
|
- err = a.SetupRequestHeader(c, &targetHeader, info)
|
|
|
- if err != nil {
|
|
|
- return nil, fmt.Errorf("setup request header failed: %w", err)
|
|
|
- }
|
|
|
targetHeader.Set("Content-Type", c.Request.Header.Get("Content-Type"))
|
|
|
targetConn, _, err := websocket.DefaultDialer.Dial(fullRequestURL, targetHeader)
|
|
|
if err != nil {
|