[英]Ruby Net::HTTP using SSL
我有一個非常簡單的API,我想使用ruby進行POST,而不是使用GEM,只需內置庫net/http
, uri
和openssl
如果需要)。
無論如何,我使用下面的代碼做一個非常簡單的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.