เก็บปลายทางของฟอร์มไว้ในคำขอ และเก็บพร็อกซีไว้ในการกำหนดค่าการเชื่อมต่อ พร็อกซีไม่จำเป็นต้องมีฟิลด์ฟอร์มพิเศษที่บรรจุ 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 ไม่เคยไปถึงแอป

บทความที่เกี่ยวข้อง