- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在使用 httparty 进行一系列 API 调用。前两个 API 调用成功,但第三个失败。它暂停大约 60 秒(默认超时时间),然后返回此错误:
/Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/protocol.rb:158:in `rescue in rbuf_fill': Net::ReadTimeout (Net::ReadTimeout)
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/protocol.rb:152:in `rbuf_fill'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/protocol.rb:134:in `readuntil'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/protocol.rb:144:in `readline'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http/response.rb:39:in `read_status_line'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http/response.rb:28:in `read_new'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:1406:in `block in transport_request'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:1403:in `catch'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:1403:in `transport_request'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:1376:in `request'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:1369:in `block in request'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:852:in `start'
from /Users/luigi/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:1367:in `request'
from /Users/luigi/.rvm/gems/ruby-2.0.0-p247@pdf/gems/httparty-0.12.0/lib/httparty/request.rb:93:in `perform'
from /Users/luigi/.rvm/gems/ruby-2.0.0-p247@pdf/gems/httparty-0.12.0/lib/httparty.rb:486:in `perform_request'
from /Users/luigi/.rvm/gems/ruby-2.0.0-p247@pdf/gems/httparty-0.12.0/lib/httparty.rb:423:in `get'
from /Users/jmccann/.rvm/gems/ruby-2.0.0-p247@pdf/gems/httparty-0.12.0/lib/httparty.rb:518:in `get'
我的问题是为什么会这样?此错误是否表明 API 存在错误,或者我可以采取哪些措施来导致错误?
我的代码:
url = HTTParty.get("https://dev.test.com#{call}",
:basic_auth => auth,
:headers => {'Accept' => 'application/json' } )
url = HTTParty.get("https://dev.test.com#{call}",
:basic_auth => auth,
:headers => {'Accept' => 'application/json' } )
唯一发生变化的是实际的调用
,但根据 API 文档,它们都是有效的调用。
最佳答案
来自 Ruby 文档:http://ruby-doc.org/stdlib-2.1.2/libdoc/net/http/rdoc/Net/HTTP.html
Number of seconds to wait for one block to be read (via one read(2) call). Any number may be used, including Floats for fractional seconds. If the HTTP object cannot read data in this many seconds, it raises a Net::ReadTimeout exception. The default value is 60 seconds.
什么是调用
?服务端点是否不同?你在翻阅记录吗? API 通常对调用者进行速率限制以防止 DDOS 攻击。您可以尝试将 api 调用包装在一些重试逻辑中或添加一些 sleep 代码。
关于Ruby 错误 Net::ReadTimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19798091/
我看过一些与 Selenium 中的超时错误相关的帖子。这变得越来越难以忍受,因为它使我的测试包无法使用。我正在测试当前正在开发中的网页。 我有一个包含大约 300 个测试场景的回归套件,在 fire
我用过 httparty Rails 4 应用程序中的 gem 当我发布到 api 时,查询正在服务器中运行,但我的控制台因错误 Net::ReadTimeout: Net::ReadTimeout
我今天放假回来,我的 capybara 和 Selenium 动力测试抛出了这个错误: Net::ReadTimeout: Net::ReadTimeout /Users/pupeno/.rvm/ru
热衷于将 Capybara 烘焙到新版本的 Rails (5.1) cf http://weblog.rubyonrails.org/2017/2/23/Rails-5-1-beta1/ 我遇到了一个
我试图了解 restTemplate 上可用的 readTimeout,它到底是什么? 它是在我们收到超时异常之前请求可以花费的总时间吗? 最佳答案 您可以在 RestTemplate 上定义读取超时
对于我的测试服务器,我有无复制 Cassandra 2.1.6 设置: CREATE KEYSPACE v2 WITH replication ={'class': 'SimpleStrategy',
我有一个 Zuul 代理,它工作正常,直到它重定向到一个比正常时间(超过 10 秒)响应时间更长的服务器。 我可以通过属性 (zuul.host.socket-timeout-millis) 修改读取
我正在使用 Ruby/Cucumber/Capybara/Chromedriver 运行自动化测试。自动化测试由 Jenkins 运行。奇怪的是,有时浏览器打开,但黑屏,我得到 Net::ReadTi
我正在尝试使用 Python 和请求抓取 Home Depot 网站。 Selenium Webdriver 工作正常,但需要太多时间,因为目标是在本地油漆店和电动工具店之间制作一个对时间敏感的价格比
我们遇到一个问题,在我们产品的单个实例上,当我们尝试设置 System.Net.HttpWebResponse 对象的 ReadTimeout 属性时收到 InvalidOperationExcept
我在我的代码中使用了 URLConnection。我已将 ReadTimeout 设置为 5 秒,但它没有生效。当我关闭 wifi 时,会立即调用 IO 异常。 URLConnection conn
当客户端使用 readTimeout 关闭与 API 的连接时,服务器会发生什么。请求的执行将完成还是一旦超时发生就会中断,或者执行将完成并且响应流被服务器应该发送给用户的响应 最佳答案 超时是关闭连
我已经在 Virtual Box 上安装了 hortonworks 沙箱。 (6092MB 内存)我正在关注 this tutorial . 当我尝试执行一个简单的脚本时 使用参数:-useHCata
我正在使用 httparty 进行一系列 API 调用。前两个 API 调用成功,但第三个失败。它暂停大约 60 秒(默认超时时间),然后返回此错误: /Users/luigi/.rvm/rubies
在为这个简单问题找到答案所花费的时间似乎比合理的多得多之后,我想我应该将我的结果留在这里,这样其他人就不必跳过我刚刚遵循的所有障碍和错误路径。 问题是,如果您使用 TcpClient ReadTime
NetworkStream.ReadAsync 什么时候任务完成?一旦接收到指定长度的数据? 如果是,它会返回 0 吗?然后 CancellationToken可以用作 ReadTimeout ,这是
在一些与支付终端通信的遗留代码中发现了一个错误。 就在开始新的支付之前,代码尝试清除 SerialPort 的内部读取缓冲区。 我将代码精简到最低限度。它使用 .NET SerialPort 类型。设
在使用 Watir 进行身份验证后,我正在尝试使用 Watir 获取 Facebook 的源代码。它给出了这个特定的错误。 /.rvm/rubies/ruby-2.0.0-p247/lib/ruby/
我在以下代码中遇到异常: (System.IO.MemoryStream) Stream stream = new MemoryStream(fcr.FileContents); System.Dra
我对如何使用 ReadTimeout 以及它如何影响 Read() 感到困惑。 当尝试读取网络流时,有 3 种情况,假设我们正在尝试读取 X 个字节: 数据可用,字节 X 没有可用数据,ReadTim
我是一名优秀的程序员,十分优秀!