fix proxy
This commit is contained in:
@ -9,6 +9,9 @@ import (
|
||||
)
|
||||
|
||||
func GetClient(proxy string) (*http.Client, error) {
|
||||
if proxy == "" {
|
||||
return http.DefaultClient, nil
|
||||
}
|
||||
proxyUrl, err := url.Parse(proxy)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to parse proxyUrl, url:%s, err: %w", proxy, err)
|
||||
@ -28,20 +31,25 @@ func unixSocks5Proxy(path string) (*http.Client, error) {
|
||||
}
|
||||
ctxDialer, ok := dialer.(proxy.ContextDialer)
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("proxy.SOCKS5 did not return a ContextDialer") // This should never happen
|
||||
panic("proxy.SOCKS5 did not return a ContextDialer")
|
||||
}
|
||||
|
||||
return &http.Client{
|
||||
Transport: &http.Transport{
|
||||
DialContext: ctxDialer.DialContext,
|
||||
},
|
||||
}, nil
|
||||
trans := defaultTransport()
|
||||
trans.DialContext = ctxDialer.DialContext
|
||||
trans.Proxy = nil
|
||||
return &http.Client{Transport: trans}, nil
|
||||
}
|
||||
|
||||
func proxyHttp(proxyUrl *url.URL) (*http.Client, error) {
|
||||
return &http.Client{
|
||||
Transport: &http.Transport{
|
||||
Proxy: http.ProxyURL(proxyUrl),
|
||||
},
|
||||
}, nil
|
||||
trans := defaultTransport()
|
||||
trans.Proxy = http.ProxyURL(proxyUrl)
|
||||
return &http.Client{Transport: trans}, nil
|
||||
}
|
||||
|
||||
func defaultTransport() *http.Transport {
|
||||
transPtr, ok := http.DefaultTransport.(*http.Transport)
|
||||
if !ok {
|
||||
panic("http.DefaultTransport is not a *http.Transport")
|
||||
}
|
||||
trans := transPtr.Clone()
|
||||
return trans
|
||||
}
|
||||
|
Reference in New Issue
Block a user