mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-12-29 01:06:35 +08:00
忽略301, 302, 303, 307, 308响应中没有Location的错误提示
This commit is contained in:
26
internal/nodes/http_client_transport.go
Normal file
26
internal/nodes/http_client_transport.go
Normal file
@@ -0,0 +1,26 @@
|
||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||
|
||||
package nodes
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
const emptyHTTPLocation = "/$EmptyHTTPLocation$"
|
||||
|
||||
type HTTPClientTransport struct {
|
||||
*http.Transport
|
||||
}
|
||||
|
||||
func (this *HTTPClientTransport) RoundTrip(req *http.Request) (*http.Response, error) {
|
||||
resp, err := this.Transport.RoundTrip(req)
|
||||
if err != nil {
|
||||
return resp, err
|
||||
}
|
||||
|
||||
// 检查在跳转相关状态中Location是否存在
|
||||
if httpStatusIsRedirect(resp.StatusCode) && len(resp.Header.Get("Location")) == 0 {
|
||||
resp.Header.Set("Location", emptyHTTPLocation)
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
Reference in New Issue
Block a user