1

リモート データベースから情報を取得するには、外部 URL を呼び出す必要があります。

私はこのように私の呼び出しを設定しようとしました:

post_params = {'a' => 'b', 'b' => 'c',}
resp = Net::HTTP.post_form(URI.parse('https:/my.remoteserver.com/'), post_params)

ただし、URL が HTTPS であるため、これは 400 Bad Request で返されます。

ただし、呼び出しを GET としてフォーマットすると、次のようになります。

url = URI.parse("https:/my.remoteserver.com?a=b&b=c")
result = Net::HTTP.start(url.host, use_ssl: true, verify_mode: OpenSSL::SSL::VERIFY_NONE) do
  |http| http.get url.request_uri, 'User-Agent' => 'MyLib v1.2'
end

すべて正常に動作します。残念ながら、私の特定のケースでは、GET を使用できません。POSTでこれを行う方法があると思いますが、それがどうなるかわかりません。誰かがこれで私を助けてくれたら、本当に感謝しています。ありがとう!

4

1 に答える 1

7

他の回答のリンクの重要な部分であり、問​​題の原因はuse_ssl = trueNet::HTTP要素を設定する必要があるためです。

例:

post_params = {'a' => 'b', 'b' => 'c',}

uri = URI 'https:/my.remoteserver.com/'

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true if uri.scheme == 'https'

resp = http.post_form(uri, post_params)
于 2012-08-29T20:45:16.250 に答える