Go 无效字符“\r";主机名:51813

Go 无效字符“\r";主机名:51813,go,Go,有目的地开始学习格朗。我正在尝试从某个url获取网页的.body。这是代码的一部分 func AddForm(url string) string { if url == "" { data := ReadByIoutil("file.txt") // the file contains several urls array := ParseData(data) // parsing data in T "Object" => Object.url

有目的地开始学习格朗。我正在尝试从某个url获取网页的.body。这是代码的一部分

func AddForm(url string) string {
    if url == "" {
        data := ReadByIoutil("file.txt") // the file contains several urls
        array := ParseData(data) // parsing data in T "Object" => Object.url string
        url = "https://"
        url += array[rand.Intn(len(array))].url // choose randomly 1 among urls
        log.Print(url)
    }
    resp, err := http.Get(url) //get content from url
    check(err)
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    content := string(body)
    WriteByOs("index.html", content) //save to another file (optionaly)
    return content
}

// I practically don't understand this block, but I copied from another place but it works as I wanted
func handler(w http.ResponseWriter, r *http.Request) {
    url := r.FormValue("url")
    if url == "" {
        w.Header().Set("Content-Type", "text/html; charset=utf-8")
        url = ""
        //url = "habr.com"
        fmt.Fprint(w, AddForm(url))
        return
    }
}
我检查结构。一切正常=>Object.url看起来像“example.com”。结构中的每个url都很好地打开,例如google.com、habr.com。我也注意到了例如“[PREFIX].cppreference.com”的叫喊错误。但对我来说,这是清楚的,但仍然不明白如何解决这个问题。主要问题是我出错,没有打开url“stackoverflow.com”:

这是什么\r是否重定向到本地语言分支?我是网络技术的新手,所以仍然不知道服务器是如何响应的,也不知道什么是对用户隐藏的,但可以与机器一起工作。 所以,评论问我file.txt。这里(PS.parser工作得很好):


删除下线字符。您可能必须使用“\r\n”或“\r”


您可以与URL共享该文件吗?死机位于
C:/Users/dev/go/src/test/main.go:14
或者可能是
C:/Users/dev/go/src/test/main.go:100
,您的代码中哪一行是第14行还是第100行?下面的完整代码“\r\n”-是Windows中的行尾符号(\n-在Unix中)。您应该从行尾修剪这些符号。可能file.txt是在Windows上创建的
2018/09/19 12:08:16 https://stackoverflow.com
2018/09/19 12:08:16 http: panic serving [::1]:51813: parse https://stackoverflow.com
: invalid character "\r" in host name
goroutine 19 [running]:
net/http.(*conn).serve.func1(0xc00003c8c0)
    C:/Go/src/net/http/server.go:1746 +0xd7
panic(0x665ae0, 0xc0002369f0)
    C:/Go/src/runtime/panic.go:513 +0x1c7
main.check(...)
    C:/Users/dev/go/src/test/main.go:14
main.AddForm(0xc000042800, 0x1b, 0x0, 0x0)
    C:/Users/dev/go/src/test/main.go:100 +0x2e6
main.handler(0x6f1300, 0xc0001447e0, 0xc0000d8c00)
    C:/Users/dev/go/src/test/main.go:114 +0xb2
net/http.HandlerFunc.ServeHTTP(0x6bfb20, 0x6f1300, 0xc0001447e0, 0xc0000d8c00)
    C:/Go/src/net/http/server.go:1964 +0x4b
net/http.(*ServeMux).ServeHTTP(0x899640, 0x6f1300, 0xc0001447e0, 0xc0000d8c00)
    C:/Go/src/net/http/server.go:2361 +0x12e
net/http.serverHandler.ServeHTTP(0xc000048c30, 0x6f1300, 0xc0001447e0, 0xc0000d8c00)
    C:/Go/src/net/http/server.go:2741 +0xb2
net/http.(*conn).serve(0xc00003c8c0, 0x6f1400, 0xc000040280)
    C:/Go/src/net/http/server.go:1847 +0x64d
created by net/http.(*Server).Serve
    C:/Go/src/net/http/server.go:2851 +0x2fc
google.com; yandex.ru; habr.com; xakep.ru; stackoverflow.com
url += strings.TrimSuffix(array[rand.Intn(len(array))].url, "\r")