- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想在 Ruby 中使用 rest-client gem 做一些 HTTP REST 请求,
在 https://github.com/rest-client/rest-client 的 readme.md 之后我写了这个简单的命令行脚本,试图在响应代码不同于 2xx 的情况下捕获异常:
RestClient.get('http://thisurldoesnotexist/resource') { |response, request, result, &block|
case response.code
when 200
p "It worked !"
response
else
response.return!(request, result, &block)
end
}
你好,在 stdout 输出上得到了这个:
/home/*****/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:878:in `initialize': getaddrinfo: Name or service not known (SocketError)
from /home/solyaris/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:878:in `open'
from /home/solyaris/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:878:in `block in connect'
from /home/solyaris/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/timeout.rb:52:in `timeout'
from /home/solyaris/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:877:in `connect'
from /home/solyaris/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:862:in `do_start'
from /home/solyaris/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:851:in `start'
from /home/solyaris/.rvm/gems/ruby-2.0.0-p247/gems/rest-client-1.6.7/lib/restclient/request.rb:172:in `transmit'
from /home/solyaris/.rvm/gems/ruby-2.0.0-p247/gems/rest-client-1.6.7/lib/restclient/request.rb:64:in `execute'
from /home/solyaris/.rvm/gems/ruby-2.0.0-p247/gems/rest-client-1.6.7/lib/restclient/request.rb:33:in `execute'
from /home/solyaris/.rvm/gems/ruby-2.0.0-p247/gems/rest-client-1.6.7/lib/restclient.rb:68:in `get'
from prova_rest.rb:3:in `<main>'
我怎样才能捕捉到 SocketError ?我哪里错了?
谢谢乔吉奥
最佳答案
回调 block 仅在收到来自服务器的一些响应时执行。在这种情况下,名称解析失败,所以 RestClient.get
只是抛出一个异常而没有进入 block 。因此只需将您的代码包装在 begin...end
构造中。
begin
RestClient.get('http://thisurldoesnotexist/resource') { |response, request, result, &block|
case response.code
when 200
p "It worked !"
response
else
response.return!(request, result, &block)
end
}
rescue SocketError => e
# Handle your error here
end
关于ruby rest_client 异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20371666/
我想在 Ruby 中使用 rest-client gem 做一些 HTTP REST 请求, 在 https://github.com/rest-client/rest-client 的 readme
当我这样做时 thin start ,这是我得到的错误: $ thin start >> Using rack adapter /.rvm/gems/ruby-1.9.2-p0/gems/active
我正在构建第一个 gems,我想为我的 gems 使用 rest_client gems,我已经将 gem 'rest_client', '~> 1.8.3' 放在 lib/foo/Gemfile,这
我正在尝试使用 Ruby rest_client 创建一个新的 RavenDb,但我不断收到 400 错误。下面是我在本地机器上运行的简单脚本。我也尝试过 PUTS 命令,但它导致了同样的错误。感谢您
尝试开始使用 ruby 中的 rest 客户端进行 API 测试,然而,遇到一个又一个问题,希望有人能够提供帮助。 我正在使用 RVM ruby-2.0.0-p648 我有 rest_clie
我是一名优秀的程序员,十分优秀!