Sūtīt Ruby Net::HTTP POST caur starpniekserveri
Konfigurējiet Ruby HTTP savienojumu ar skaidru starpniekserveri, pēc tam nosūtiet veidlapas datus uz galamērķi.
Turiet veidlapas galamērķi pieprasījumā un starpniekserveri savienojuma konfigurācijā. Starpniekserverim nav vajadzīgs īpašs veidlapas lauks ar vēlamo URL, ja vien neizmantojat konkrētas vietnes tīmekļa starpniekservera saskarni.
Ruby Net::HTTP gadījumā skaidru HTTP starpniekserveri var norādīt, veidojot klientu:
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) }
Starpniekserveris ir tikai ilustratīvs; HTTP kandidāti atļautajiem publisko veidlapu testiem ir pieejami HTTP starpniekserveru sarakstā. Veidlapas galapunkts jāaizstāj ar pakalpojumu, kas paredzēts iesnieguma saņemšanai. Net::HTTP starpniekservera dokumentācija arī apraksta starpniekservera akreditācijas datus un no vides iegūtos iestatījumus.
Izlasiet atbildi, pirms vainojat starpniekserveri
Serveris, kas noraida veidlapu, var radīt HTTP kļūdu pēc tam, kad maršruts caur starpniekserveri ir darbojies pareizi. Pārbaudiet atbildes statusu un galamērķa prasības: metodi, satura tipu, veidlapas laukus, sīkfailus un jebkuru pieprasījuma marķieri.
Starpniekservera autentifikācijas izaicinājums nāk no starpniekservera. Lietojumprogrammas pieteikšanās vai noraidīta veidlapa pieder galamērķim. Turiet to akreditācijas datus atsevišķi. Galamērķa paroles pievienošana starpniekservera konfigurācijai nevar apmierināt galamērķa pieteikšanos.
Squid pārsūtīšanas galveņu noteikumi ir vēl viens iespējams apjukuma avots. To servera puses politika ir atsevišķa no derīga Ruby POST izveides. Nemainiet koplietota starpniekservera galveņu noteikumus tikai tāpēc, ka veidlapa vienreiz neizdevās.
Atkārtotos mēģinājumos apsveriet, vai pirmais iesniegums jau varēja tikt apstrādāts. Pazudusi atbilde nav pierādījums, ka POST nekad nesasniedza lietojumprogrammu.