簡體   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