Avatar ·

如何在Golang中为http.Get()设置超时?

大家好!我是Go新手,在执行HTTP请求时遇到了一个问题。 我需要向外部API发送GET请求,但有时服务器会挂起或响应非常慢。在文档的标准示例中,我使用`http.Get()`,它会无限期挂起,阻塞整个程序。这是我的代码: ```go resp, err := http.Get("https://api.example.com/data") if err != nil { log.Fatal(err) } defer resp.Body.Close() ``` 问题在于,如果服务器没有响应,程序会永远挂起。我想设置一个超时,比如5秒,这样在没有响应的情况下,程序会报错并继续运行。 我尝试在文档中查找,但没有找到为`http.Get()`添加超时的简单方法。我看到过关于`http.Client`的内容,但不知道如何正确应用。 请告诉我如何在Go中正确实现HTTP请求的超时?是否需要创建一个单独的客户端,还是有办法直接将超时传递给`Get()`?另外,我还对