Я вызываю службу Java через конечную точку http (встроенный причал). Сервис обрабатывает асинхронные http-запросы с тайм-аутом 5 с и надежно работает, когда я вызываю его из браузера с параметрами URL, скриптом curl или py.
Когда я вызываю его из ruby-скрипта с net/http или rest-client, тайм-аут в половине случаев ?! Любая идея, что может быть причиной этого и какое возможное решение может быть (с рубином)?
Я использую 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()