我试图在这里使用http代理
proxyUrl := url.Parse(strings.Replace("%v", RandomProxyAddress()))
http.DefaultTransport = &http.Transport{Proxy: http.ProxyURL(proxyUrl)}
告诉我url.Parse中的参数太多了
但是当我尝试
时proxyUrl := url.Parse(RandomProxyAddress())
http.DefaultTransport = &http.Transport{Proxy: http.ProxyURL(proxyUrl)}
我得到./main.go:138: multiple-value url.Parse() in single-value context
当我尝试更换字符串时,它也告诉我太多的变量。不知道如何让我的代理使用url.Parse
答案 0 :(得分:2)
首先,url.Parse根据docs here返回两个变量,一个URL和一个错误。
其次,代替strings.Replace
你可能意味着使用fmt.Sprintf("%v", RandomProxyAddress())
,假设RandomProxyAddress()
返回一个字符串,或者格式化为你想要的字符串的东西。总而言之,你应该:
addr := fmt.Sprintf("%v", RandomProxyAddress())
proxyURL, err := url.Parse(addr)
if err != nil {
log.Println(err)
}
也就是说,如果fmt.Sprintf
已经返回一个字符串,则RandomProxyAddress()
是不必要的。 Check the docs for fmt
and fmt.Sprintf
。如果您确实打算使用strings.Replace
,请注意requires four arguments,而不是两个。