如何在处理函数func

时间:2018-11-08 19:28:29

标签: go

如何使处理程序内部的http.Get请求成为func? 例如,这个简单的代码“应该”在localhost:8080浏览器中返回空白页,但它发疯了。我在学校里错过了什么?

package main

import "net/http"

func index(w http.ResponseWriter, r *http.Request) {
    _, err := http.Get("www.google.com")
    if err != nil {
        panic(err)
    }
}

func main() {
    http.HandleFunc("/", index)
    http.ListenAndServe(":8080", nil)
}

1 个答案:

答案 0 :(得分:0)

问题是您应该在https://函数中使用 protocol (例如Get):

_, err := http.Get("https://www.google.com")

您原始代码中的错误是Get www.google.com: unsupported protocol scheme ""

enter image description here

http.Get()需要URL,而www.google.com不是URL;网址以方案开头。尽管在浏览器中键入“ www.google.com”是很常见的,但它仍然不是完整的URL;友好的浏览器在发出请求之前会自动在“ http://”或“ https://”之前添加前缀。 http.Get()不会那样做;它希望以格式正确的URL开头。