http请求使用ruby(net / http和rest-client)超时,但使用curl + py快速

时间:2012-05-21 06:19:38

标签: ruby http curl rest-client

我通过其http端点(嵌入式jetty)调用java服务。该服务处理超时为5秒的异步http请求,并且当我使用url params或curl或py脚本从浏览器调用它时可靠地工作。

当我使用net / http或rest-client从ruby脚本调用它时,它会超出一半的时间?!任何想法可能导致这种情况以及可能的解决方案可能是什么(使用ruby)?

我正在使用ruby 1.9.3-p125并且ruby和python脚本都是< 10行(我通常会从更大的代码中调用,但是小版本也不起作用)。

净/ HTTP

paramStr = "rid=#{rid}&id=#{id}&json=#{json}"
uri = URI.parse(URI.escape(proxy_server_addr+"?"+paramStr))
response = Net::HTTP.get_response(uri)

其余的客户端

resource = RestClient::Resource.new('http://myserver.com:9001', :timeout => 10)
response = resource["/"].get :params => {:id => id, :rid => rid, :json => json}

卷曲

curl 'http://myserver:9001/?id=...'

吡啶

import urllib2
print urllib2.urlopen("http://myserver.com:9001?id=...").read()

enter image description here

1 个答案:

答案 0 :(得分:0)

你过度复杂了。 urllib2的ruby等价物是open-uri:

require 'open-uri'
puts open("http://myserver.com:9001?id=...").read