松崎と申します。
毎度お世話になっております。

Net::HTTP を使って CGI へクエリを投げ込むスクリプトを組んでいますが、
ターゲットの CGI スクリプトが困った仕様になっていて、
nph- スクリプトなのに HTTP ステータスラインを生成しません。

% telnet hogehoge.jp 80
GET /cgi-bin/nph-query HTTP/1.0

<HTML>				# 本来この行の前に HTTP/1.0 200 OK などと入るべき
<HEAD><TITLE>.....</TITLE></HEAD>
 :
 :
%

という具合の挙動をします。

で、 Net::HTTP.version_1_2 でクエリを投げると、

/usr/local/lib/ruby/1.8/net/http.rb:1556:in `read_status_line': wrong status line: "<HTML>" (Net::HTTPBadResponse)
        from /usr/local/lib/ruby/1.8/net/http.rb:1538:in `read_new'
        from /usr/local/lib/ruby/1.8/net/http.rb:833:in `request'
        from /usr/local/lib/ruby/1.8/net/http.rb:690:in `post'
        from ./query.rb:80

という具合に例外で落ちてしまいます。
 # Net::HTTP.request は「 HTTP 関連の例外を発生させない」と書いてありますが…

まあ、明らかにスクリプトの方が仕様外なので仕方ないのです
(そして連絡しても直してもらえないのです)が、
例外を拾っても救済する方法がわかりませんでした。

欲しいデータはきちんとサーバから帰ってきていますので、
それを拾い出す方法がわかればと思うのですが。

-- 
Motomichi Matsuzaki, PhD <mzaki / biol.s.u-tokyo.ac.jp>
Dept. of Biological Sciences, Grad. School of Science, Univ. of Tokyo, Japan