【问题标题】:specify timeout time in a POST or GET request with httr using r使用 r 在带有 httr 的 POST 或 GET 请求中指定超时时间
【发布时间】:2020-10-15 07:51:23
【问题描述】:

我正在运行几个脚本来使用httr 包发布和检索数据。 有时,其中一项工作会停止并且永远不会完成。当其他脚本假定此脚本已完成时,这会导致问题。 停止是由于另一端的服务器上的一些错误。

因此,是否可以为 POST/GET 请求指定最大等待时间?

我查看了文档并找到了httr::timeout() 函数。它将参数传递给curl::setopt(),据说可以回答我的问题。

但是,当我查看超时的 curl 选项时,我发现:

> curl::curl_options("^timeout$")
> timeout
> 13

这不是我在实践中所经历的吗?我错过了什么?

【问题讨论】:

    标签: r http httr


    【解决方案1】:

    一种选择是将超时规范直接包含在您的 GET 请求中:

    library(httr)
    GET("http://httpbin.org/delay/3", timeout(1))
    

    这会返回一个超时错误,如下所示:

    curl::curl_fetch_memory(url, handle = handle) 中的错误:超时 已达到:[httpbin.org] 操作在 1000 毫秒后超时 收到 0 个字节

    【讨论】:

    • 真的那么简单吗?据我所知,默认值为 13(秒?),但我的工作仍在运行,但在过去 +12 小时内一直停滞不前。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多