使用Net :: HTTP抛出Net :: HTTPBadResponse错误的API调用

apr*_*apr 5 ssl ruby-on-rails net-http

我正在开发rails环境.我正在使用Net :: HTTP模块来调用外部API并获得响应.这在我当地的主机上工作正常.但是在暂存它时会抛出Net :: HTTPBadResponse错误.我的暂存是启用SSL的.这是不同的.提供下面的代码段和错误.

parameters = {'VirtualNumber' => '09845xxxxxx','Number[]' => "09878xxxxxx" }
x = Net::HTTP.post_form(URI.parse("https://example.com"), parameters)

Error:
Net::HTTPBadResponse (wrong status line: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">")
Run Code Online (Sandbox Code Playgroud)

成功的结果将是XML格式.任何人都可以帮我解决这个问题.

谢谢,
问候

apr*_*apr 2

问题是从启用 ssl 的站点调用 API。所以在调用API时我们需要启用ssl。除此之外还需要提供基本的身份验证。

parameters = {'VirtualNumber' => '09845xxxxxx','Number[]' => "09878xxxxxx" }
url = URI.parse("https://example.com")
request = Net::HTTP::Post.new(url.path)
request.basic_auth "user", "pass"
request.set_form_data(parameters)
sock = Net::HTTP.new(url.host, url.port)
if url.scheme == 'https'
  sock.use_ssl = true
end
response = sock.start {|http| http.request(request) }
Run Code Online (Sandbox Code Playgroud)