如何使处理程序内部的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)
}
答案 0 :(得分:0)
问题是您应该在https://
函数中使用 protocol (例如Get
):
_, err := http.Get("https://www.google.com")
您原始代码中的错误是Get www.google.com: unsupported protocol scheme ""
。
http.Get()
需要URL,而www.google.com
不是URL;网址以方案开头。尽管在浏览器中键入“ www.google.com”是很常见的,但它仍然不是完整的URL;友好的浏览器在发出请求之前会自动在“ http://”或“ https://”之前添加前缀。 http.Get()
不会那样做;它希望以格式正确的URL开头。