みなさん、こんにちは。
私のアプリケーションはリモートサーバーで動作します。サーバーは証明書の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を使用しています。どんな考えでも嬉しいです!