From: Minero Aoki Date: 2001-02-06T20:16:58+09:00 Subject: [ruby-list:27546] net/smtp,pop,http 1.2 pre2 あおきです。 net/smtp,pop,http の開発版を CVS に入れときました。 (なにやらデバッグメッセージが…?) * get/get2 系は前回と同じ。 * リクエストオブジェクトは以下のように。 req = Net::HTTP::Get.new( path ) http.request( req ) do |resp| # 結局ブロック使いたがり屋 ^^;; puts resp.read_body end または req = Net::HTTP::Get.new( path ) resp = http.request( req ) ちなみに request って名前は LWP からパクりました。 * [ruby-list:27179] のバグをもうちょっといい方法で修正。 * タイムアウトをつけた。SMTP / POP でも使えます。 http = Net::HTTP.new( ... ) http.open_timeout = 60 http.read_timeout = 60 もっと簡単にしろ、などなど意見がありましたらどうぞ。 * 高橋(征)さん御所望 ^^;; の SSL 対応(のための対応)。 class SSLHTTP < Net::HTTP protocol_param :socket_class, 'クラス名' def on_connect CONNECT 送信 end end みたいな感じで、できる…んじゃないかと(or できるといいなあ)。 ---- それと相談なんですけど、POST でエンティティをこっちから送るときに ブロックを使いたい(ちょっとづつ書きこみたい)という人はいますか? たとえば以下のように。 # 案 req = Net::HTTP::Post.new( path ) resp = http.???( req ) {|f| f.write str f.write str f.write str } puts resp.body # 案 2 req = Net::HTTP::Post.new( path ) http.throw( req ) {|f| # この名前はいくらなんでも… f.write str f.write str f.write str }.catch {|resp| # キツいな… puts resp.body } まあとにかくそんな感じに、分割して渡せるようなものです。 だれもいない場合は実装されません ^^;; ------------------------------------------------------------------- 青木峰郎