2012-01-24 33 views
0

你怎麼能通過https使用遏制紅寶石做一個帖子?遏制SSL上的帖子

這是我如何做到這一點通過HTTP上傳文件到服務器:

c = Curl::Easy.new("http://www.myserver.com/upload_messages") 
c.multipart_form_post = true 
post_field = Curl::PostField.content('fieldname', myfile) 
c.http_post(post_field) 

隨着網:: HTTP我會用USE_SSL =真實的,但如何與路邊辦呢?

的崗位去在Heroku上運行的應用程序和錯誤我現在得到的是:

Curl::Err::SSLCaertBadFile (Curl::Err::SSLCaertBadFile) 

感謝。

+0

路邊還有use_ssl方法。你應該能夠以相同的方式設置它。 –

回答

0

你有沒有從路邊的Github上這個例子(https://github.com/taf2/curb/blob/master/samples/gmail.rb)試圖c = Curl::Easy.new("https://www.myserver.com/upload_messages")(注意URL中的HTTPS而不是HTTP),原因(我猜的作品,還沒有嘗試過我自己),他們發佈通過HTTPS的Gmail剛這樣做。

+0

是的,我已經嘗試過,但我會仔細檢查。實際上,我有一個變量,在https是生產環境的情況下。但我會再次檢查,以防萬一並報告回來。感謝Jorge。 – Pod

0

看起來你有錯誤的證書,應該有選項來信任unsigned。

require 'net/http' 
require 'net/https' 
require 'uri' 

url = URI.parse 'https://myname:[email protected]/' 
http = Net::HTTP.new(url.host, url.port) 
http.use_ssl = (url.scheme == 'https') 
http.verify_mode = OpenSSL::SSL::VERIFY_NONE 

也試試curb-fu寶石。在那裏,您可以使用SSL發佈請求,如

form_data = { :color => 'red', :shape => 'sphere' } 
response = CurbFu.post({:url => "https://example.com", :protocol => "https"}, form_data)