【问题标题】:Bing API HTTP request timeout必应 API HTTP 请求超时
【发布时间】:2018-05-30 22:58:34
【问题描述】:

我正在使用 Bing V7 API 并为此端点发送 HTTP 请求:

https://api.cognitive.microsoft.com/bing/v7.0/search

当我定义我的 HttpClient 时,我需要选择正确的超时值。缩短超时时间,会让我失去服务器的一些答案。超时时间太长,会让我等待,即使服务器不在那里。

我查看了 Bing documentation 并没有找到正确的值。

此调用的正确 HTTP 请求超时是多少?

【问题讨论】:

    标签: http bing bing-api


    【解决方案1】:

    此调用的正确 HTTP 请求超时是多少? 我正在使用 Bing V7 API 并为此端点发送 HTTP 请求:

    Bing 通过 HTTP 端点提供 API。在我看来,这与 API 本身没有任何关系,因为 HTTP 只是这种情况下的传输。 HTTP 请求上下文通常由例如处理。反向代理,例如 NGINX(或此处可能是 MS IIS)。因此 API 文档中没有文档。

    当我定义我的 HttpClient 时,我需要选择正确的超时值。缩短超时时间,会让我失去服务器的一些答案。超时时间太长,即使服务器不在,也会让我等待。

    HttpClient 中的超时值只是为了最终从blocking 情况中恢复。这意味着您的程序不会无限期地阻塞,而是会在某个时候终止手头的 HTTP 操作。如果您的HttpClient 进入例如,这很有用。网络分裂情况,死锁或类似情况,永远不会有回复。

    45 到 60 秒之间的超时值就足够了。

    超时时间太长,即使服务器不在,也会让我等待。

    我会将HttpClient 超时值保持在一个固定值,例如。 60 秒,然后让第二个“主管”线程进行一些更动态的“烟雾测试”,以检查连接是否正常或是否存在其他问题,此时您可以提前终止 HttpClient

    【讨论】:

    • 您好,感谢您的回答。当您说“45 到 60 秒之间的超时值就足够了”-您基于什么?我确信 Bing 应该在他们的文档中记录这个规范。没有其他方法可以猜测它。根据我的经验,请求需要
    • @No1Lives4Ever 我基于我在运行反向代理时的经验。你可以看到例如。这里nginx.org/en/docs/http/… nginx 本身将 60 秒设置为连接超时作为默认值。对此没有任何规则或已知“这就是答案”。
    • 在中国带来巨大流量的阿里巴巴tengine在他们的测试中也有60秒的值。 github.com/alibaba/tengine/blob/master/tests/test-nginx/cases/…所以YMMV。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    • 2010-12-12
    • 2014-04-25
    • 1970-01-01
    • 1970-01-01
    • 2020-03-16
    相关资源
    最近更新 更多