Satchel
Satchel

Reputation: 16734

Can I use rest-client to POST a binary file to HTTP without multipart?

I have tried to do the following, but the web-service is NOT REST and does not take multi-part. What do I do in order to POST the image?

@response = RestClient.post('http://www.postful.com/service/upload',
                {:upload => {
                   :file => File.new("#{@postalcard.postalimage.path}",'rb')
                   }
                },
                {"Content-Type" => @postalcard.postalimage.content_type,
                 "Content-Length" => @postalcard.postalimage.size,
                 "Authorization" => 'Basic xxxxxx'
                 } # end headers
           ) #close arguments to Restclient.post

Upvotes: 1

Views: 2316

Answers (1)

Satchel
Satchel

Reputation: 16734

Got the answer: use I/O to stream as a string instead of using File.new....

:file => IO.read("#{@postalcard.postalimage.path}")

Upvotes: 1

Related Questions