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