ruby プロジェクトで、POSTS リクエストをリッスンしているサーバーに画像を送信しようとしています。余分な必要なgemの使用は避けたいです。Ruby 1.9.3 を使用していますが、net/http マルチポートはサーバーと次のコードでサポートされていません。
require 'net/http'
require "uri"
image = File.open(image.path, 'r')
url = URI("http://someserver/#{image_name}")
req = Net::HTTP.new(url.host, url.port)
Net::HTTP.new(url.host, url.port)
headers = {"X-ClientId" => client_id, "X-ClientSecret" => client_secret, "Content-Type" => "image/jpeg"}
response, body = req.post(url.path, image, headers)
次のエラー メッセージでクラッシュします。
http.rb:1932:in `send_request_with_body': undefined method `bytesize' for #<File:0x007ffdcd335270> (NoMethodError)
以下はbashで成功しますが:
curl -i -X POST --data-binary @./output.jpg -H 'X-ClientId: ##..##' -H 'X-ClientSecret: ##..##' http:/someserver/output.jpg
何がうまくいかないのですか?
前もって感謝します