[#44578] Ruby初心者が作りました — Kabu and Ruby管理人 <kabu_and_ruby@...>

http://www.geocities.jp/kabuandruby/index.html

26 messages 2008/02/06

[#44691] ”Rubyアプリケーションプログラミング”の伝言サーバの使い方 — "Yangkook Kim" <yangkookkim@...>

キムと申します。オーム社から出版されている書籍、"Rubyアプリケーションプログラミング"のP267~275に掲載されている伝言サーバー&クライアントの利用の仕方がわかりません。質問を要約すると次の2点です。1、サーバーが正常に起動されているかどうかわからない。2、書き込みクライアントで入力をサーバーに送信する方法がわからない。

8 messages 2008/02/24

[ruby-list:44665] Re: Net::HTTP について

From: 大道 裕 <daidou@...2.so-net.ne.jp>
Date: 2008-02-20 04:37:41 UTC
List: ruby-list #44665
大道です。

早速のレスをありがとうございます。

S_Konno(今野 滋) wrote:

> 0. 具体的にどのサイトか教えてもらえないと、答えを書く前に検証ができません

具体的に書くとまずいのかと思いましたが...
本来のプログラムは

require 'net/http'
http = Net::HTTP.new('www.koeki-data.soumu.go.jp', 80)
response, data = http.get('/', nil)
puts data

> 1. そのページはブラウザのクッキーとJavaScriptを切った状態でも見れますか?

見られます。

> 2. 同一サーバーに対して、間を置かずに複数のアクセスをしようとしたりしていませんか?

単発で、実行しています。

> 3. open-uri は試されましたでしょうか?
> require "open-uri"
> open("http://example.com"){|f| puts f.read }

同じ(?)ようにBad Request が帰ってきます。

C:/Program Files/ruby-1.8/lib/ruby/1.8/open-uri.rb:287:in `open_http': 400
Bad Request (OpenURI::HTTPError)
        from C:/Program Files/ruby-1.8/lib/ruby/1.8/open-uri.rb:626:in
`buffer_open'
        from C:/Program Files/ruby-1.8/lib/ruby/1.8/open-uri.rb:164:in
`open_loop'
        from C:/Program Files/ruby-1.8/lib/ruby/1.8/open-uri.rb:162:in `catch'
        from C:/Program Files/ruby-1.8/lib/ruby/1.8/open-uri.rb:162:in
`open_loop'
        from C:/Program Files/ruby-1.8/lib/ruby/1.8/open-uri.rb:132:in
`open_uri'
        from C:/Program Files/ruby-1.8/lib/ruby/1.8/open-uri.rb:528:in `open'
        from C:/Program Files/ruby-1.8/lib/ruby/1.8/open-uri.rb:30:in `open'
        from C:/Documents and Settings/svwg/ruby/get_test02.rb:2

> 4. terminalから、の入力で、
> $ curl http://example.com
> に対しては弾かれ、
> $ curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)" http://example.com
> では成功する場合は、user-agent を偽装すれば良いということになります。(curlが使える場合)

curlでは、問題なく表示されます。

> 基礎事項↓
> http://jp.rubyist.net/magazine/?0013-BundledLibraries

下記のプログラムも試したのですが、同じでした。

require 'net/http'
Net::HTTP.version_1_2
Net::HTTP.start('www.koeki-data.soumu.go.jp', 80) {|http|
  response = http.get('/home.htm')
  puts response.body
}

-- 
****************************************
   大道 裕

   かわうそ会ホームページ
http://kawauso.daidou.org/

   三鷹市水泳連盟ホームページ
http://suiren.mitaka.tokyo.jp/
****************************************

In This Thread