mirror of
https://github.com/QuantumNous/new-api.git
synced 2026-04-19 05:07:27 +00:00
Merge pull request #2805 from lanfunoe/fix/make-channel-Host-override-take-effect
fix: make channel Host override take effect
This commit is contained in:
@@ -98,6 +98,19 @@ func processHeaderOverride(info *common.RelayInfo, c *gin.Context) (map[string]s
|
|||||||
return headerOverride, nil
|
return headerOverride, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func applyHeaderOverrideToRequest(req *http.Request, headerOverride map[string]string) {
|
||||||
|
if req == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
for key, value := range headerOverride {
|
||||||
|
req.Header.Set(key, value)
|
||||||
|
// set Host in req
|
||||||
|
if strings.EqualFold(key, "Host") {
|
||||||
|
req.Host = value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func DoApiRequest(a Adaptor, c *gin.Context, info *common.RelayInfo, requestBody io.Reader) (*http.Response, error) {
|
func DoApiRequest(a Adaptor, c *gin.Context, info *common.RelayInfo, requestBody io.Reader) (*http.Response, error) {
|
||||||
fullRequestURL, err := a.GetRequestURL(info)
|
fullRequestURL, err := a.GetRequestURL(info)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -121,9 +134,7 @@ func DoApiRequest(a Adaptor, c *gin.Context, info *common.RelayInfo, requestBody
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for key, value := range headerOverride {
|
applyHeaderOverrideToRequest(req, headerOverride)
|
||||||
headers.Set(key, value)
|
|
||||||
}
|
|
||||||
resp, err := doRequest(c, req, info)
|
resp, err := doRequest(c, req, info)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("do request failed: %w", err)
|
return nil, fmt.Errorf("do request failed: %w", err)
|
||||||
@@ -156,9 +167,7 @@ func DoFormRequest(a Adaptor, c *gin.Context, info *common.RelayInfo, requestBod
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for key, value := range headerOverride {
|
applyHeaderOverrideToRequest(req, headerOverride)
|
||||||
headers.Set(key, value)
|
|
||||||
}
|
|
||||||
resp, err := doRequest(c, req, info)
|
resp, err := doRequest(c, req, info)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("do request failed: %w", err)
|
return nil, fmt.Errorf("do request failed: %w", err)
|
||||||
|
|||||||
Reference in New Issue
Block a user