じゃ、どうかく?おるぐ - Twisted Mind
Voluntasさんが紹介していた、どう書く?org。
面白いなーと思ってたんですが、せっかくなので投稿されてるプログラムを実行させてみようかと。
とりあえず、題材はこれ。
doukaku.org -
すると、あっさりハマル。
C:/Program Files/ruby/lib/ruby/1.8/net/http.rb:560:in `initialize': Bad file descriptor - connect(2) (Errno::EBADF)
あらら?Proxyサーバを経由しないといけないんだな。
リファレンスを確認したらNet::HTTP.Proxyを実行すればいいようで。
#! /user/bin/env ruby require 'net/http' Net::HTTP.version_1_2 #おまじない $proxy_addr = '#PROXY_ADDR#' $proxy_port = #PORT# Net::HTTP::Proxy($proxy_addr, $proxy_port).get_print 'ja.doukaku.org', '/feeds/comments/'
文字化けするけど、とりあえずデータを拾ってはいるみたい。
文字化けか・・・どうすればいいんだろう。苦手なんだよなぁ(´・ω・`)*1
そういえば、RubyGemsも同じようなメッセージが出てとまっていたような?Proxyサーバ経由でアクセスさせるにはどうすればいいんだ?
と思って調べてみると・・・環境変数に入れてやればいいらしい。
set http_proxy=http://PROXY_ADDRESS:PROXY_PORT*2
その後、gem list --remoteで実行させてみたら無事に動いた。面白そうなGemsがわらわらと!
この件については、こちらを参考にさせていただきました。
http://d.hatena.ne.jp/shingotada/20060823/1158069744
ちなみに、この環境変数を指定してやると素のNet::HTTPクラスでもアクセス可能みたい。
めでたしめでたし*3
*1:この辺?使い方がわからないけど・・・(汗)Rubyist Magazine - 標準添付ライブラリ紹介 【第 3 回】 Kconv/NKF/Iconv
*2:http://を忘れてて1時間ほど悩んだ・・・
*3:文字化けを除く