يؤدي استخدام بروكسي socks مع المصادقة إلى Faraday :: ConnectionFailed: تم الوصول إلى نهاية الملف
تهيئة فاراداي
Faraday.new do |connection|
connection.proxy = "socks://user:pass<strong i="14">@host</strong>:port"
connection.adapter Faraday.default_adapter
end
وتقديم أي طلب
لقد تمكنت من إصلاحه عن طريق ترقيع القرد Faraday :: Adaptor :: NetHttp ، لكنني لست متأكدًا من أن هذا كان أفضل قرار
مرحبًا yarafan ، شكرًا على الإبلاغ.
هل يمكنني أن أسألك كيف يمكنك تثبيت القرد Faraday::Adapter::NetHttp
؟
أستخدم الأحجار الكريمة "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 أرى ، لذا فإن Net::HTTP
لا يدعم بروكسي الجوارب خارج الصندوق.
في هذه الحالة ، لن أصنف هذا على أنه خطأ ، ولكنني سأصنفه على أنه طلب ميزة لدعم بروكسيات الجوارب.
مثل أي طلب ميزة آخر ، يجب حل هذا لجميع المحولات في فرع 0.x الحالي ، ولكن بالنسبة لفرع v1.0 ، فإننا ننقل جميع المحولات خارج faraday ونحتفظ فقط بـ Net :: HTTP.
سيكون هذا هو الوقت المناسب لتقديم هذا 👍
سأحدِّث العنوان وسأسم المشكلة ، إذا احتاج أي شخص إلى استخدام بروكسيات الجوارب قبل ذلك الحين ، فيمكنه استخدام رقعة القرد الخاصة بك
أضف دعم المصادقة إلى Net :: HTTP.SOCKSProxy
https://github.com/astro/socksify-ruby/pull/24/files
أنا أبحث عن القيام بهذا بالضبط
عمل جيد yarafan
أهلا. ما هي حالة هذه الميزة؟ هل ما زالت قيد التطوير؟
سأكون مهتمًا جدًا بعدم الاضطرار إلى استخدام رقعة القرد للقيام بذلك
gcolson ، نعم ، لقد قام technoweenie بمعظم المهمة بالفعل 🎉
لسوء الحظ ، ومع ذلك ، نحن ننتظر حاليًا دمج علاقات عامة تابعة ، انظر تعليقي: https://github.com/lostisland/faraday/pull/992#issuecomment -508437342
التعليق الأكثر فائدة
أستخدم الأحجار الكريمة "socksify"