Newbie problems with Net::Http

M

Marcelo Paniagua

Hi there!

I'm starting to use Net::Http.

I'm fetching an image from a page with the following code


Net::HTTP.start(address) do |http|
#req = Net::HTTP::Get.new('http://a page')
req = Net::HTTP::Get.new('http://a page/a_image.JPG')
req.basic_auth 'user', 'password'
response = http.request(req)
file = File.new('file.jpg',"w")
file.write(response.body)
file.close

the problem is that the file created has additional info and the image
can't be readed.. Any idea what I'm doing wrong?
 
A

Assaph Mehr

Open the file in binary mode to write the image:
Net::HTTP.start(address) do |http|
#req = Net::HTTP::Get.new('http://a page')
req = Net::HTTP::Get.new('http://a page/a_image.JPG')
req.basic_auth 'user', 'password'
response = http.request(req)
file = File.new('file.jpg',"w")
file.write(response.body)
file.close

Instead of the above 3 lines:
File.open('file.jpg, 'wb') { |f| f.write response.body }

Which will open the file for binary writing and close it for you after
the block is executed.

BTW, the argument for Get.new can be just the path of the image on the
site, without the http://site part.

HTH,
Assaph
 
M

Marcelo Paniagua

Thank! it was really helpful! now it is running ok.

Marcelo

Assaph Mehr escribió:
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,772
Messages
2,569,591
Members
45,103
Latest member
VinaykumarnNevatia
Top