きよの と申します。

環境は Windows XP XP2 pro です。XP のファイアウォールは有効にしています。
ただし、Norton の製品はいれていません。(McAfee VirusScan のみ)

1.6.8 で動かしていたスクリプトを 1.8.2(mswin32版)で動かしてみましたが、
特に問題なく動作します。SOAP ではなく、ただの HTTP ですが。

  http = Net::HTTP.new(host, 80)
  
  http.start
  response , = http.post(
    path,
    "region=#{region}&s_media=#{s_media}&genre=#{genre}&keyword=#{keyword_encoded}",
    {"Content-Type" => "application/x-www-form-urlencoded"}
  )
  http.finish

なにか、ご参考になれば...


On Sun, 2 Jan 2005 19:47:45 +0900
Masahiro Utsumi <utsumi / tte.be> wrote:

> 内海@しつこくってすみませんです。
> 
> やはりXP-SP2では動かないです。 どなたかヒントいただけませんでしょう
> か? 同じPCでもpythonスクリプトは動作するのでファイアウオールのせい
> ではなさそうです。
> 
> 症状: Socketをつかったスクリプトがフリーズする
> 環境: Ruby 1.8.2 (win32) on XP-SP2
> Win2000, Linuxの環境では問題なく動作します。
> Libの中を追いかけると http.rb(line:1167) sock.write bufでフリーズ。
> その先は自分の能力の関係で追跡不能。
> 
> 
> # 動かないRubyスクリプト
> require 'net/http'
> require 'uri'
> pu = URI.parse("http://www.tte.be/")
> Net::HTTP.start(pu.host, pu.port) do |http|
>     response = http.get(pu.request_uri, nil)  #ここでフリーズ。
>     p response
> end
> 
> # 同じPCでもpythonなら動く
> import urllib
> url = "http://www.tte.be/"
> sock = urllib.urlopen(url)
> html = sock.read()
> sock.close()
> print html
> 
> よろしくお願いします。
> 
> 
> > 内海と申します。
> > 
> > すこし調べましたところ、SOAPドライバだけじゃなく、ソケット関係が全滅
> > していることが分かりました。
> > たとえば http.rb(line:1167) sock.write buf のようなところで戻ってこ
> > ないです。
> > 
> > Win2000で試したら問題なく動作しますので、XPのせいか、ファイアウオー
> > ル(Norton)の設定が問題みたいです。 もう少し調べてみます。
> 
> 

---
KIYONO Koichi
E-Mail: kiyono-k / nifty.com
Web Site: http://homepage2.nifty.com/cat-chy/