Ruby Net::HTTP POST کو پراکسی کے ذریعے بھیجیں
Ruby HTTP کنکشن کو واضح پراکسی کے ساتھ ترتیب دیں، پھر فارم ڈیٹا منزل پر بھیجیں۔
فارم کی منزل درخواست میں اور پراکسی کنکشن کنفیگریشن میں رکھیں۔ پراکسی کو آپ کے مطلوبہ URL والا کوئی خاص فارم فیلڈ درکار نہیں، جب تک آپ کسی مخصوص ویب سائٹ کا ویب-پراکسی انٹرفیس استعمال نہ کر رہے ہوں۔
Ruby کے Net::HTTP کے لیے، کلائنٹ بناتے وقت واضح HTTP پراکسی دی جا سکتی ہے:
require 'net/http'
uri = URI('https://example.com/form')
http = Net::HTTP.new(uri.hostname, uri.port,
'203.0.113.10', 8080)
http.use_ssl = true
http.open_timeout = 5
http.read_timeout = 10
request = Net::HTTP::Post.new(uri.request_uri)
request.set_form_data('message' => 'hello')
response = http.start { |session| session.request(request) }
پراکسی صرف مثال ہے؛ اجازت شدہ عوامی فارم ٹیسٹوں کے لیے HTTP امیدوار HTTP پراکسی فہرست میں دستیاب ہیں۔ فارم اینڈ پوائنٹ کو ایسی سروس سے بدلنا چاہیے جو جمع کرانے کو قبول کرنے کے لیے بنائی گئی ہو۔ Net::HTTP کی پراکسی دستاویز پراکسی اسناد اور ماحول سے حاصل کردہ پراکسی ترتیبات بھی بیان کرتی ہے۔
پراکسی کو مورد الزام ٹھہرانے سے پہلے جواب پڑھیں
فارم مسترد کرنے والا سرور پراکسی راستہ درست طریقے سے کام کرنے کے بعد بھی HTTP خرابی پیدا کر سکتا ہے۔ جواب کی حالت اور منزل کی ضروریات جانچیں: طریقہ، مواد کی قسم، فارم فیلڈز، کوکیز اور کوئی درخواست ٹوکن۔
پراکسی کی تصدیق کا چیلنج پراکسی سے آتا ہے۔ ایپلیکیشن لاگ ان یا مسترد شدہ فارم منزل کا ہے۔ ان کی اسناد الگ رکھیں۔ پراکسی کنفیگریشن میں منزل کا پاس ورڈ شامل کرنا منزل کے لاگ ان کو پورا نہیں کر سکتا۔
Squid کے فارورڈنگ-ہیڈر اصول الجھن کا ایک اور ممکنہ ذریعہ ہیں۔ ان کی سرور سائیڈ پالیسی درست Ruby POST بنانے سے الگ ہے۔ صرف اس لیے کہ فارم ایک بار ناکام ہوا، مشترکہ پراکسی کے ہیڈر اصول نہ بدلیں۔