繁体   English   中英

Ruby Net :: HTTP使用SSL

[英]Ruby Net::HTTP using SSL

我有一个非常简单的API,我想使用ruby进行POST,而不是使用GEM,只需内置库net/httpuriopenssl如果需要)。

无论如何,我使用下面的代码做一个非常简单的POST请求,但我得到了一些非常奇怪的结果,并希望别人看到这个。

我也在POSTMAN和NodeJS中测试了下面相同的请求,BOTH按预期工作,唯一一个我无法工作的是Ruby。

require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://somesite.dev/devices")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(url)
request["key"] = '1234567'

response = http.request(request)
puts response.read_body

结果是我以前没见过的:我得到两次标题key ...所以API的日志显示如下查询:

SELECT * FROM device where key = '1234567, 1234567' LIMIT ...

如上所述,我可以通过POSTMAN或NodeJS发出相同的请求,并获得正确的结果。

注意:因为我有API的本地副本,我可以在本地测试但是它不是SSL,而是全部通过http。 在本地提出请求时它工作得很好。 因此,从我所知的这个问题来看,只有在引入SSL时才会自我呈现。

任何帮助都会很棒! 谢谢!!

Ruby版本2.2.1

问题出在我最初的问题中没有列出的内容。 API使用AWS API Gateway,并且在该方法上启用了HTTP_PROXY ,从而导致此奇怪问题。 删除HTTP_PROXY后问题解决了,上面的代码工作正常!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM