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=...'

パイ

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 に答える