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 бүтээхээс тусдаа. Зөвхөн форм нэг удаа бүтэлгүйтсэн гэж хуваалцсан проксийн толгойн дүрмийг бүү өөрчил.
Дахин оролдох үед эхний илгээлт аль хэдийн боловсруулагдсан байж болзошгүйг бодолцоорой. Алдагдсан хариу нь POST апп-д хэзээ ч хүрээгүйн нотолгоо биш.