Saatke Ruby Net::HTTP POST puhverserveri kaudu
Seadistage Ruby HTTP-ühendus selgesõnalise puhverserveriga ja saatke seejärel vormiandmed sihtkohta.
Hoidke vormi sihtkoht päringus ja puhverserver ühenduse konfiguratsioonis. Puhverserver ei vaja spetsiaalset vormivälja soovitud URL-iga, kui te ei kasuta mõne konkreetse saidi veebipuhverserveri liidest.
Ruby Net::HTTP puhul saab kliendi loomisel määrata selgesõnalise HTTP-puhverserveri:
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) }
Puhverserver on illustratiivne; lubatud avalike vormide testide HTTP-kandidaadid on saadaval HTTP-puhverserverite loendis. Vormi lõpp-punkt tuleb asendada teenusega, mis on mõeldud esituse vastuvõtmiseks. Net::HTTP puhverserveri dokumentatsioon kirjeldab ka puhverserveri mandaate ja keskkonnast tuletatud puhverserveri seadeid.
Lugege vastust enne, kui puhverserverit süüdistate
Vormi tagasi lükkanud server võib anda HTTP-vea pärast seda, kui puhverserveri marsruut on õigesti töötanud. Kontrollige vastuse olekut ja sihtkoha nõudeid: meetod, sisutüüp, vormiväljad, küpsised ja võimalik päringutoken.
Puhverserveri autentimise väljakutse tuleb puhverserverilt. Rakenduse sisselogimine või tagasilükatud vorm kuulub sihtkohale. Hoidke nende mandaadid eraldi. Sihtkoha parooli lisamine puhverserveri konfiguratsiooni ei saa sihtkoha sisselogimist rahuldada.
Squidi edastamis-päiste reeglid on veel üks võimalik segaduse allikas. Nende serveripoolne poliitika on kehtiva Ruby POST-i koostamisest eraldi. Ärge muutke jagatud puhverserveri päisereegleid ainult seetõttu, et vorm üks kord ebaõnnestus.
Korduskatsete puhul kaaluge, kas esimene esitus võis juba töödeldud olla. Kadunud vastus ei tõenda, et POST ei jõudnud kunagi rakenduseni.