| 138 | |
| 139 | } |
| 140 | func (h *Http) SetSocksProxy(proxyUrl string, auth *proxy.Auth) *Http { |
| 141 | baseDialer := &net.Dialer{ |
| 142 | Timeout: 30 * time.Second, |
| 143 | KeepAlive: 30 * time.Second, |
| 144 | } |
| 145 | dialSocksProxy, err := proxy.SOCKS5("tcp", proxyUrl, auth, baseDialer) |
| 146 | if err != nil { |
| 147 | log.Println("[!]SetSocksProxy Error: ", err) |
| 148 | h.err = err |
| 149 | return h |
| 150 | } |
| 151 | if contextDialer, ok := dialSocksProxy.(proxy.ContextDialer); ok { |
| 152 | h.HttpTransport.DialContext = contextDialer.DialContext |
| 153 | } |
| 154 | return h |
| 155 | } |
| 156 | |
| 157 | func (h *Http) DontRedirect() *Http { |
| 158 | h.HttpClient.CheckRedirect = func(req *http.Request, via []*http.Request) error { |