0

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

当我使用 net/http 或 rest-client 从 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=...'

py

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

在此处输入图像描述

4

1 回答 1

0

你把它复杂化了。urllib2 的 ruby​​ 等价物是 open-uri:

require 'open-uri'
puts open("http://myserver.com:9001?id=...").read
于 2012-05-21T06:48:16.583 回答