アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のようなHTTPサーバをWinXp上で動かしました。

#$ruby = "C:/ruby/bin/ruby.exe"
require 'webrick'
srv = WEBrick::HTTPServer.new({
:BindAddress => 'xxx.xxx.xxx.xxx',
:CGIInterpreter => "c:/ruby/bin/ruby.exe",
:Port => 80
})
srv.mount("/", WEBrick::HTTPServlet::FileHandler, "./", {:FancyIndexing=>true})
srv.start

そして、以下のようなCGIをよびます。

#!/usr/bin/ruby
STDOUT.binmode
open("hoge.gif", "r") do |f|
f.binmode
body = f.read
puts "content-type: image/gif"
puts "content-length: #{body.size.to_s}"
puts ""
print body
end

すると、content-length分のHTTPボディーが送られてきません。
2種類のgifで試しましたが、193byte/724byte、289byte/451byteでした。

バージョンは、ruby 1.8.6、WEBrick 1.3.1です。

何が原因でしょうか?

A 回答 (1件)

クライアント側はどうやって確認していますか?


IEやFirefoxのようなブラウザ?それとも自作?自作だと単にまだ続きがあるのに読んでいないだけと言うことも考えられます。

この回答への補足

クライアントはIEを使ってます。

因みに、WEBrick以外のHTTPサーバ(AN HTTP)で同じCGIを呼ぶと正常に動きました。なので、WEBrickの使い方なんじゃないかと思ってます。

補足日時:2008/03/05 17:36
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!