go - 如何在处理函数 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)
}
解决方案
问题是您应该在函数中使用协议(例如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 开头。
推荐阅读
- linux - Bazel 语言和语言环境
- sql - 找到最高和最低的薪水
- python - 从 python3 代码中运行 bash 脚本的问题
- android - 坏类:来自 API 的数据格式中的类 java.lang.String
- python - 引导:有更快的方法吗?
- angular - 如何使用 ngx-translate 将变量传递给 ngFor?
- nagios - Nagios web interface doesn't accept the credentials
- java - 提高可扩展配置对象的 spring 库的显式性
- ruby - 在 Windows 2012 R2 中使用 WinRM 会引发 WinRM::WinRMAuthorizationError
- html - 如何在不影响具有相同状态的其他元素的情况下更改一个元素的状态?