أبقِ وجهة النموذج في الطلب والوكيل في إعداد الاتصال. لا يحتاج الوكيل إلى حقل نموذج خاص يحمل عنوان URL الذي تريده، إلا إذا كنت تستخدم واجهة وكيل ويب لموقع معين.

في Net::HTTP الخاص بـ Ruby، يمكن توفير وكيل 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 مصدر آخر محتمل للالتباس. سياستها على جانب الخادم منفصلة عن بناء طلب POST صالح في Ruby. لا تعدل قواعد رؤوس وكيل مشترك لمجرد أن النموذج فشل مرة واحدة.

عند إعادة المحاولة، فكر في أن الإرسال الأول ربما عولج بالفعل. الرد المفقود ليس دليلًا على أن طلب POST لم يصل إلى التطبيق أبدًا.

مقالات ذات صلة