Senda Ruby Net::HTTP POST í gegnum proxy
Stilltu Ruby HTTP-tengingu með skýrum proxy og sendu síðan formgögnin á áfangastaðinn.
Haltu áfangastað formsins í beiðninni og proxyinu í tengistillingunum. Proxy þarf ekki sérstakan formreit með vefslóðinni sem þú vilt, nema þú sért að nota vefproxy-viðmót á tiltekinni vefsíðu.
Fyrir Net::HTTP í Ruby er hægt að gefa skýrt HTTP-proxy þegar biðlarinn er búinn til:
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) }
Proxyið er aðeins sýnidæmi; HTTP-frambjóðendur fyrir leyfðar prófanir á opinberum formum eru fáanlegir á HTTP-proxylistanum. Skipta verður út endapunkti formsins fyrir þjónustu sem er ætluð til að taka við sendingunni. Proxy-skjöl Net::HTTP lýsa einnig proxy-innskráningum og proxy-stillingum sem koma úr umhverfinu.
Lestu svarið áður en þú kennir proxyinu um
Þjónn sem hafnar formi getur framleitt HTTP-villu eftir að proxy-leiðin hefur unnið rétt. Athugaðu stöðu svarsins og kröfur áfangastaðarins: aðferð, efnisgerð, formreiti, vafrakökur og hvaða beiðnitákn sem er.
Proxy-auðkenningaráskorun kemur frá proxyinu. Innskráning í forrit eða hafnað form tilheyrir áfangastaðnum. Haltu innskráningargögnum þeirra aðskildum. Að bæta áfangastaðarlykilorði við proxy-stillinguna getur ekki uppfyllt innskráningu á áfangastaðnum.
Reglur Squid um framsendingarhausa eru önnur möguleg uppspretta ruglings. Stefnа þeirra á þjónahlið er aðskilin frá því að byggja gilt Ruby POST. Breyttu ekki hausareglum sameiginlegs proxys bara vegna þess að formið mistókst einu sinni.
Fyrir endurtekningar skaltu íhuga hvort fyrsta sendingin kunni þegar að hafa verið unnin. Tapað svar er ekki sönnun þess að POST hafi aldrei náð forritinu.