簡體   English   中英

Ruby on Rails HTTPS發布錯誤請求

[英]Ruby on Rails HTTPS Post 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.

那是什么 我試圖找到一個解決方案,但無濟於事。 Internet收到了可能是殺毒軟件的消息,但我使用的是Linux。 任何想法我都會很高興!

您沒有填寫標題數據。

您可以使用Net :: HTTP.post_form方法創建請求,也可以自己填充form_data。

post_form解決方案:

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

手動表格_數據填充

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM