rubyhttpsslhttpstyphoeus

How to use Typhoeus::Request object using https


I'm trying to make an https request using the Typhoeus::Request object and i don't get it working.

The code i'm running is something like this:

url = "https://some.server.com/"
req_opts = {
 :method => :get,
 :headers => { 
      "Content-Type"=>"application/json",
      "Accept"=>"application/json"
  },
 :params=>{},
 :params_encoding=>nil,
 :timeout=>0,
 :ssl_verifypeer=>true,
 :ssl_verifyhost=>2,
 :sslcert=>nil,
 :sslkey=>nil,
 :verbose=>true
}
request = Typhoeus::Request.new(url, req_opts)
response = request.run

The response i'm getting is this:

HTTP/1.1 302 Found
Location: https://some.server.com:443/
Date: Sat, 27 Apr 2019 02:25:05 GMT
Content-Length: 5
Content-Type: text/plain; charset=utf-8

Why is this happening?


Solution

  • Well it's hard to know because your example is not a reachable url. But 2 things I see is that you are not passing an ssl cert or key. But also 302 indicates a redirect. You can try to follow redirection but your first problem is probably you don't need to set SSL options, why are you?

    See if you try the following options:

    req_opts = {
     :method => :get,
      :headers => {
        "Content-Type"=>"application/json",
        "Accept"=>"application/json"
       },
        :params=>{},
        :params_encoding=>nil,
        :timeout=>0,
        :followlocation => true,
        :ssl_verifypeer=>false,
        :ssl_verifyhost=>0,
        :verbose=>true
      }
    

    See the following sections for more info

    https://github.com/typhoeus/typhoeus#following-redirections https://github.com/typhoeus/typhoeus#ssl