我有一些遠程REST API通過HTTP2運行。它使用證書運行SSL。目標是通過代理通過HTTP2發送和接收帶有SSL證書的數據。通過PROXY HTTP2請求,紅寶石
還有http-2 & net-http2允許使用HTTP2發送請求的gem。但是代理呢?在標準的Net :: HTTP庫中,除了通過代理服務器發送請求的事實外,還有一個子類Net :: HTTP :: Proxy,它重複了父類的Net :: HTTP類的行爲。但HTTP2寶石不支持它。
該關閉的想法,我想出了是讓類似代理實現的http1.1東西 - 寫「主持人:」和「代理授權:」字段插座,淨-Http2寶石用途:
@socket.writeline sprintf('CONNECT %s:%s HTTP/%s',
@address, @port, HTTPVersion)
@socket.writeline "Host: #{@address}:#{@port}"
if proxy_user
credential = ["#{proxy_user}:#{proxy_pass}"].pack('m')
credential.delete!("\r\n")
@socket.writeline "Proxy-Authorization: BasiC#{credential}"
end
@socket.writeline ''
但它結束了:
SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A
我可能會錯過一些技術知識來實現這一點,所以相關的研究方向任何幫助表示讚賞。