Ruby on Rails HTTPS发布错误请求

时间:2009-11-12 04:05:00

标签: ruby-on-rails post https bad-request

问候所有人。

我的应用程序适用于远程服务器。服务器使用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操作系统。我会很高兴任何想法!

1 个答案:

答案 0 :(得分:0)

您没有填写标题数据。

您可以使用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)