在Golang中用上下文WithTimeout和WithCancel取消HTTP客户端请求

243 阅读1分钟

如果你的客户程序正在调用一个服务器程序,你希望响应尽可能快地回来。然而,如果操作很慢,你可以取消它。对于这种情况,你可以使用WithTimeoutWithCancel功能。

应用程序

package main

客户端方式

虽然这篇文章是关于上下文的,但你可以用http.Client.Timeout 参数来处理整个取消操作,如下所示。

func users() (*http.Response, error) {

测试

如果客户端发生超时,错误将是一个*url.Error 实例,其内容类似于下面。

&{
func users() (*http.Response, error) {

测试

如果客户端请求上下文超时,错误将是一个*url.Error 实例,内容类似于下面。

&{
func users() (*http.Response, error) {

测试

如果客户端请求取消,错误将是一个*url.Error 实例,内容类似于下面的内容。

&{