我将超时设置为 300 秒(以测试 AWS lambda 函数 + API 网关),但 HTTPie 继续在 30 秒时超时。 是否有上限设置为 30 秒? 我正在使用
http --timeout=300 POST https://...
30 是默认超时设置,而不是上限。
出于某种原因, httpie
没有使用我指定的超时时间并在 30 秒时超时...
$ http --timeout=300 POST https://...
HTTP/1.1 504 Gateway Timeout
Connection: keep-alive
Content-Length: 41
Content-Type: application/json
Date: ...
{
"message": "Endpoint request timed out"
}
我用--timeout=300
和--timeout 300
(这应该没有区别,但我想确保)尝试了这个,结果是一样的:它在 30 秒时超时。 函数调用应该需要大约 2 分钟(120 秒),但它永远不会超过 30 秒。
这不是httpie
超时。 您会收到一个响应,告诉您您和 lambda 函数之间的中介正在超时请求。 --timeout
是从您的计算机到该中介。 中介可以将它想要的任何超时设置为您的 lambda 函数。 这绝对不是HTTPie 错误。
其实这是httpie的问题。 我的 gunicorn 超时是 90 秒,而 httpie 仍在 30 秒处停止......我知道 gunicorn 没有超时,因为在 httpie 死后几秒钟我看到日志中的服务器输出结果。
@gnulnx有一个默认的 30 秒 _connection_ 超时,您可以通过--timeout=n
更改。
(默认超时将在 v2.0.0 中删除。)
最有用的评论
这不是
httpie
超时。 您会收到一个响应,告诉您您和 lambda 函数之间的中介正在超时请求。--timeout
是从您的计算机到该中介。 中介可以将它想要的任何超时设置为您的 lambda 函数。 这绝对不是HTTPie 错误。