Ruby on Rails HTTPS发布错误请求

问候所有。

我的应用程序适用于远程服务器。 服务器使用证书的https授权。 我有以下代码来授权和发送请求:

uri = URI.parse("https://db1-test.content.ertelecom.ru/") http = Net::HTTP.new(uri.host, '443') http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_PEER http.ca_file = File.join(File.dirname("public/certificate.pem"), "certificate.pem") http.start do |http| req = Net::HTTP::Get.new("/cgi-bin/expr/export.get_pay_systems?partner_id=1003") responce = http.request(req) resp = responce.body end 

这段代码效果很好,我从服务器获取数据。 但是当我尝试发出POST请求时:

 http.start do |http| req = Net::HTTP::Post.new("/cgi-bin/expr/payment_transactions.verify_order", params) responce = http.request(req) resp = responce.body end 

我从服务器收到错误:

 Your browser sent a request that this server could not understand. Request header field is missing ':' separator. 

那是什么? 我试图找到解决方案,但无济于事。 互联网上传出的消息是它可能是防病毒软件,但我在Linux上。 任何想法我都会很高兴!

您没有填写标题数据。

您可以使用Net :: HTTP.post_form方法创建请求或自己填充form_data。

post_form解决方案:

 req = NET::HTTP.post_form("/cgi-bin/expr/payment_transactions.verify_order", params) 

手动form_data人口

 req = Net::HTTP::Post.new("/cgi-bin/expr/payment_transactions.verify_order") req.set_form_data(params) 
Interesting Posts