6

URL から XML ファイルを解析しようとしています。私がこのようなことをしようとすると:

require 'net/http'
require 'rubygems'
require 'xmlsimple'

url = 'http://my-address.com/xmltest/note.xml'
xml_data = Net::HTTP.get_response(URI.parse(url)).body

すべてが機能しますが、Rails プロジェクトの外でこれを行う場合のみです。このファイルを Rails 3 プロジェクトに含めてそこで解析しようとすると、エラーが発生します"Errno::ECONNREFUSED in [controller]" - Connection refused - connect(2)

net/http私の問題は次のとおりです。コンポーネントのインストール方法がわかりません。http://www.rubygems.orgで探していますが、見つかりません。

4

2 に答える 2

6

Net::HTTPRuby の標準ライブラリの一部です。を使用require 'net/http'してロードできます。

Net::HTTPやりたいことに対してかなり低レベルの を使用するよりも、Ruby の を使用することをお勧めしOpen::URIます。

大量の HTTP データを移動する場合は、HTTPClient や Curb や Typhoeus など、重量のある用途向けに設計されたものを調べて、Net::HTTP.

エラーに関してECONNREFUSED: から返された HTTPResponse をキャプチャし、本文get_responseを読み取ろうとする前にそのステータスを確認することをお勧めします。現在行っている方法では、失敗したリクエストに対応できません。

于 2011-06-03T19:39:29.830 に答える
2

HTTP サーバーに接続できないことが問題のようです。
ブラウザで URL にアクセスできることを確認してみてください。

于 2011-06-03T19:33:04.100 に答える