我试图通过Ruby发出简单的HTTP请求。但是,由于对请求的调用没有返回并阻塞,我遇到了麻烦。我已经和Postman一起尝试了相同的请求,并且适当地返回。
这是我的代码:
1 uri = URI(TEST_URI) # test URL
2 request = Net::HTTP::Get.new uri
3 request['Authorization'] = AUTHORIZATION # Contains Bearer <auth token>
4 http = Net::HTTP.new(uri.host, uri.port)
5 response = http.request(request)
代码执行在第5行停止,不会继续。似乎请求没有返回。但是,当我在没有正确授权的情况下对Net::HTTP.get_response(uri)
进行简单调用时,它会正确返回,但显然会出现错误。同样,Postman中具有授权的相同请求也会正确返回。
非常感谢任何帮助!
答案 0 :(得分:1)
这是一个https
链接,因此需要ssl
连接。通过在启动调用中包含:use_ssl => true
来解决这个问题。
Net::HTTP.start(uri.host, uri.port, :use_ssl => true)
也可以在这里找到:HTTPS request using Net::HTTP's block form -- is it possible?。