去HTTP请求超时

时间:2017-03-17 14:46:28

标签: go timeout http-post

我有一个连接到服务器的客户端来读取一些响应。当我使用Postman执行请求时,服务器大约需要5分钟来响应特定请求。

我用Go语言编写这个客户端并执行以下代码来设置超时10分钟。

_client := &http.Client{
        Timeout: 10 * time.Minute,
}

resp, err := _client.Post(c.Url, "application/json", r)

但是,请求在2分钟后因错误而终止。错误只是说EOF

我尝试将超时设置为15秒以检查配置是否有效,并且请求按预期在15秒内终止。

如何确保超时为10分钟?

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,但我的代码在GAE中运行,2分钟后没有操作就取消了请求。因此,如果您完全控制代码运行的位置,则应该能够在client.Timeout中指定超时时间

See here

答案 1 :(得分:-1)

这里真正的问题是你正在以一种实现者不希望你的方式使用HTTP。您可以阅读有关您的问题的更多信息以及解决问题的最佳做法here。简短的回答是,您最好快速回复客户说该作业正在运行,并在完成后找到结果。