4

開くことができませんでした:

irb(main):001:0> require 'open-uri'
=> true
irb(main):002:0> open("http://www.google.com")
RuntimeError: Non-HTTP proxy URI: 
    from /usr/lib/ruby/1.8/open-uri.rb:203:in `open_http'
    from /usr/lib/ruby/1.8/open-uri.rb:616:in `buffer_open'
    from /usr/lib/ruby/1.8/open-uri.rb:164:in `open_loop'
    from /usr/lib/ruby/1.8/open-uri.rb:162:in `catch'
    from /usr/lib/ruby/1.8/open-uri.rb:162:in `open_loop'
    from /usr/lib/ruby/1.8/open-uri.rb:132:in `open_uri'
    from /usr/lib/ruby/1.8/open-uri.rb:518:in `open'
    from /usr/lib/ruby/1.8/open-uri.rb:30:in `open'
    from (irb):2

しかし、wget() は動作します...

root@pierr-desktop:/work/web/yy# wget www.google.com
--2010-11-14 20:00:39--  http://www.google.com/
Resolving www.google.com... 72.14.203.104, 72.14.203.99
Connecting to www.google.com|72.14.203.104|:80... connected.
HTTP request sent, awaiting response... 302 Found
......... 

2010-11-14 20:00:40 (47.7 KB/s) - `index.html' saved [9097]

プロキシを設定する必要がありますが、正しいプロキシ情報がわかりません..

4

2 に答える 2

5

Open-URI は、そこに設定されている場合は環境からプロキシを取得します。または、接続を開くときにプロキシを定義するか、環境に設定されている場合はプロキシを無効にすることもできます。

# The environment variables such as http_proxy, https_proxy and ftp_proxy
# are in effect by default.  :proxy => nil disables proxy.

open("http://www.ruby-lang.org/en/raa.html", :proxy => nil) {|f|
  # ...
}

Open-URI ドキュメントを参照してください

また、あなたの Ruby は古いようです: /usr/lib/ruby/1.8/. ruby -v少なくとも 1.8.7 でない場合は、 RVM をインストールしてから、それを使用して現在の Ruby (1.9.2) または少なくとも最新の 1.8 バージョン (1.8.7) をインストールすることをお勧めしますRVM Prerequisitesページを確認し、アカウントの起動スクリプトの変更に関する部分を含むインストール手順に従い、Ruby gemsのインストールに関する部分を読みます。

パッケージ化された Ruby を yum や apt で使用することはお勧めしません。それらは最近のものではなく、標準の Ruby ソースのインストールに期待されるすべての生き物の快適さが欠けているようです. RVM を使用すると、複数の ruby​​ を簡単にインストールして管理できます。

于 2010-11-14T21:08:41.683 に答える
1

システムにプロキシ設定が定義されている場合は、次を使用して確認できます。

1- ファイル/etc/wgetrchttp_proxy構成パラメーターを確認します。

2-次を使用して環境変数を確認します。echo $HTTP_PROXY

于 2010-11-14T12:16:43.960 に答える