首页 > 解决方案 > 如何在处理函数 func 中使用 http.Get 请求

问题描述

如何在处理程序 func 中发出 http.Get 请求?例如,这个简单的代码“应该”在 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)
}

标签: go

解决方案


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

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

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

在此处输入图像描述

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


推荐阅读