From: Emmanuel Touzery Date: 2004-01-27T19:22:54+09:00 Subject: Re: nuby: can't get an image via http Guido de Melo wrote: > Hi, > > I want to download maps from chizumaru, they provide good digital maps > and I want to put them together so I get a big map of Tokyo for example. > > Now wget works as it should: > wget -O test.png > 'http://ras.chizumaru.com/ncg/tcmap.dll?id=NCZ&PASS=NewCZPrtT&X=129374719&Y=103205254&LV=3&WID=650&HEI=680&SZ=PRT_T&TAB=live2003_scl&FUNC=2' > > > But I wanted to do this in Ruby so I tried this: > > require 'net/http' > require 'uri' > > # this works > Net::HTTP.get_print(URI.parse('http://ras.chizumaru.com/ncg/tcmap.dll?id=NCZ&PASS=NewCZPrtT&X=129374719&Y=103205254&LV=3&WID=650&HEI=680&SZ=PRT_T&TAB=live2003_scl&FUNC=2')) > > > > but then I have to redirect the output on the console. If I do it this > way > > mapfile = File.new("map.jpg", "w") > > Net::HTTP.start('ras.chizumaru.com', 80) {|http| > response, data = http.post('/ncg/tcmap.dll', > 'id=NCZ&PASS=NewCZPrtT&X=129374719&Y=103205254&LV=3&WID=650&HEI=680&SZ=PRT_T&TAB=live2003_scl&FUNC=2') > > mapfile.puts data > } > here is my version. i works a bit better, but still produces a corrupted file under windows (probably due to the binary flags or something). i think it should work under linux. =============== require 'open-uri' mapfile = File.open('map.png', 'wb') open ('http://ras.chizumaru.com/ncg/tcmap.dll?id=NCZ&PASS=NewCZPrtT&X=129374719&Y=103205254&LV=3&WID=650&HEI=680&SZ=PRT_T&TAB=live2003_scl&FUNC=2') {|f| f.binmode mapfile.write f.read } mapfile.close ============== i don't really understand why it doesn't work? emmanuel