使用上下文超时HTTP请求只能使用1.7+中的标准库(而不是子仓库)来完成:
import ( "context" "net/http" "time" ) req, err := http.NewRequest("GET", `https://example.net`, nil) ctx, _ := context.WithTimeout(context.TODO(), 200 * time.Milliseconds) resp, err := http.DefaultClient.Do(req.WithContext(ctx)) // 确保处理错误。 defer resp.Body.Close()
import ( "net/http" "time" "golang.org/x/net/context" "golang.org/x/net/context/ctxhttp" ) ctx, err := context.WithTimeout(context.TODO(), 200 * time.Milliseconds) resp, err := ctxhttp.Get(ctx, http.DefaultClient, "https://www.example.net") // 确保处理错误。 defer resp.Body.Close()
有关该context软件包的更多信息,请参见上下文。