Menggunakan proxy kaus kaki dengan auth mengarah ke Faraday::ConnectionFailed: akhir file tercapai
Inisialisasi Faraday
Faraday.new do |connection|
connection.proxy = "socks://user:pass<strong i="14">@host</strong>:port"
connection.adapter Faraday.default_adapter
end
dan buat permintaan apa pun
Saya dapat memperbaikinya dengan menambal monyet Faraday::Adapter::NetHttp, tetapi saya tidak yakin itu keputusan terbaik
Hai @yarafan , terima kasih telah melaporkan.
Bisakah saya bertanya bagaimana Anda menambal monyet Faraday::Adapter::NetHttp
?
saya menggunakan permata 'socksify'
require "socksify/http"
class Faraday::Adapter::NetHttp
def net_http_connection(env)
if (proxy = env[:request][:proxy])
proxy_class(proxy)
else
Net::HTTP
end.new(env[:url].hostname, env[:url].port || (env[:url].scheme == "https" ? 443 : 80))
end
def proxy_class(proxy)
if proxy.uri.scheme == "socks"
TCPSocket.socks_username = proxy[:user] if proxy[:user]
TCPSocket.socks_password = proxy[:password] if proxy[:password]
Net::HTTP::SOCKSProxy(proxy[:uri].host, proxy[:uri].port)
else
Net::HTTP::Proxy(proxy[:uri].host, proxy[:uri].port, proxy[:uri].user, proxy[:uri].password)
end
end
end
@yarafan saya mengerti, jadi pada dasarnya Net::HTTP
tidak mendukung proxy kaus kaki out-of-the-box.
Dalam hal ini saya tidak akan mengklasifikasikan ini sebagai bug, tetapi lebih sebagai permintaan fitur untuk mendukung proxy kaus kaki.
Seperti permintaan fitur lainnya, ini harus diselesaikan untuk semua adaptor di cabang 0.x saat ini, namun untuk cabang v1.0 kami memindahkan semua adaptor keluar dari faraday dan hanya menyimpan Net::HTTP.
Itu akan menjadi saat yang tepat untuk memperkenalkan ini 👍
Saya akan memperbarui judul dan memberi label Masalah, jika ada yang perlu menggunakan proxy kaus kaki sebelum itu, mereka dapat menggunakan patch monyet Anda
Tambahkan dukungan otentikasi ke Net::HTTP.SOCKSProxy
https://github.com/astro/socksify-ruby/pull/24/files
Saya mencari untuk melakukan hal ini
Kerja bagus @yarafan
Hai, yang di sana. Apa status tentang fitur ini? Apakah masih dalam pengembangan?
Saya akan sangat tertarik untuk tidak menggunakan tambalan monyet untuk melakukan ini
@gcolson ya @technoweenie sudah melakukan sebagian besar pekerjaan
Sayangnya, bagaimanapun, kami sedang menunggu PR dependen untuk digabungkan, lihat komentar saya: https://github.com/lostisland/faraday/pull/992#issuecomment -508437342
Komentar yang paling membantu
saya menggunakan permata 'socksify'