如何使用 golang 上下文功能而不是 golang http 客户端发出 http 请求?

Posted

技术标签:

【中文标题】如何使用 golang 上下文功能而不是 golang http 客户端发出 http 请求?【英文标题】:How to issue http request with golang context capability but not by golang http client? 【发布时间】:2017-10-04 03:21:29 【问题描述】:

我发现 golang 上下文对于在客户端-服务器请求范围内取消服务器处理很有用。

我可以使用http.Request.WithContext方法发出带有上下文的http请求,但是如果客户端不使用golang,是否可以实现?

谢谢

【问题讨论】:

【参考方案1】:

我不能 100% 确定您在问什么,但在处理传入请求和出站请求时,可以使用一段时间(例如超时)的上下文。

对于传入的请求,您可以使用上下文并返回一个超时 http 状态代码,表明服务器希望能够处理该请求。客户端发送给您的内容无关紧要,您可以自行决定与服务器的超时时间。

对于传出请求,您甚至不需要服务器知道您有超时。您只需设置一个超时,如果在设定的时间内没有得到响应,您的请求就会取消。这意味着您可能不会从服务器收到任何响应,因为您的代码会取消传出请求。

现在您是在询问如何编写这些代码的示例吗?或者只要两者都可能?

【讨论】:

以上是关于如何使用 golang 上下文功能而不是 golang http 客户端发出 http 请求?的主要内容,如果未能解决你的问题,请参考以下文章

在一个 IP 上托管多个 Golang 站点并根据域请求提供服务?

如何使用 http 而不是 https 在 Heroku 上提供 Golang 应用程序?

golang zaplog使用(转)

如何在消费者而不是提供者中更改上下文?

如何将firebase与react功能组件同步?

GoWorld – 用Golang写一个分布式可扩展可热更的游戏服务器