gpt4 book ai didi

Golang url.Parse 总是返回无效的控制字符 URL

转载 作者:行者123 更新时间:2023-12-01 20:23:24 25 4
gpt4 key购买 nike

我正在尝试使用从 free-proxy-list.net 获得的代理来抓取一些网站,并使用 Golang 将其应用到我的本地 http 请求中,但是当我使用 url.Parse() 解析代理时,总是返回 Invalid控制字符URL

func getProxy() *url.URL {
proxyUrl := "https://www.proxy-list.download/api/v1/get?type=http&country=US"
client := &http.Client{}
req, err := http.NewRequest("GET", proxyUrl, nil)
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error proxy ", err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println("Error response body", err)
}
details := string(body)
temp := strings.Split(details, "\n")
fmt.Println("http://" + temp[rand.Intn(30)])
checkProxy, err := url.Parse("http://" + temp[rand.Intn(10)])
if err != nil {
fmt.Println("Bad proxy URL", err)
}

return checkProxy
}

最佳答案

proxyUrl := "https://www.proxy-list.download/api/v1/get?type=http&country=US"

此 URL 的内容是 ip:port\r\n´ 格式的行,即行分隔符是 \r\n`,(DOS/Windows 样式)。

temp := strings.Split(details, "\n")

这按 \n 拆分内容,即 UNIX 风格的行定界符。这会在字符串中留下来自 DOS 行定界符的 \r,从而导致 ip:port\r

... always return Invalid Control Character URL

它是它所提示的行中剩余的 \r

关于Golang url.Parse 总是返回无效的控制字符 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55945325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com