mirror of
https://github.com/laoxong/nofx.git
synced 2026-06-07 11:17:56 +08:00
47 lines
1.5 KiB
Go
47 lines
1.5 KiB
Go
package proxy
|
||
|
||
import (
|
||
"log"
|
||
"net/http"
|
||
"time"
|
||
)
|
||
|
||
// --- 便捷函数(直接使用全局管理器) ---
|
||
|
||
// GetProxyHTTPClient 获取代理 HTTP 客户端(返回 ProxyClient,包含 ProxyID)
|
||
func GetProxyHTTPClient() (*ProxyClient, error) {
|
||
return GetGlobalProxyManager().GetProxyClient()
|
||
}
|
||
|
||
// NewHTTPClient 创建一个新的HTTP客户端(使用全局代理配置)
|
||
// 注意:不返回 ProxyID,如需 ProxyID 请使用 GetProxyHTTPClient()
|
||
func NewHTTPClient() *http.Client {
|
||
client, err := GetGlobalProxyManager().GetProxyClient()
|
||
if err != nil {
|
||
log.Printf("⚠️ 获取代理客户端失败,使用直连: %v", err)
|
||
return &http.Client{Timeout: 30 * time.Second}
|
||
}
|
||
return client.Client
|
||
}
|
||
|
||
// NewHTTPClientWithTimeout 创建一个新的HTTP客户端并指定超时时间
|
||
// 注意:不返回 ProxyID,如需 ProxyID 请使用 GetProxyHTTPClient()
|
||
func NewHTTPClientWithTimeout(timeout time.Duration) *http.Client {
|
||
client, err := GetGlobalProxyManager().GetProxyClient()
|
||
if err != nil {
|
||
log.Printf("⚠️ 获取代理客户端失败,使用直连: %v", err)
|
||
return &http.Client{Timeout: timeout}
|
||
}
|
||
client.Client.Timeout = timeout
|
||
return client.Client
|
||
}
|
||
|
||
// GetTransport 获取HTTP Transport
|
||
func GetTransport() *http.Transport {
|
||
client, err := GetGlobalProxyManager().GetProxyClient()
|
||
if err != nil {
|
||
log.Printf("⚠️ 获取代理客户端失败,使用直连: %v", err)
|
||
return &http.Transport{}
|
||
}
|
||
return client.Client.Transport.(*http.Transport)
|
||
} |