Dërgoni një POST të Ruby Net::HTTP përmes një proxy
Konfiguroni një lidhje HTTP Ruby me një proxy të qartë, më pas dërgoni të dhënat e formularit te destinacioni.
Mbajeni destinacionin e formularit në kërkesë dhe proxy-n në konfigurimin e lidhjes. Një proxy nuk ka nevojë për një fushë të veçantë formulari me URL-në që dëshironi, përveç rasteve kur përdorni ndërfaqen web-proxy të një faqeje të caktuar.
Për Net::HTTP të Ruby, një proxy HTTP i qartë mund të jepet kur krijohet klienti:
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) }
Proxy është ilustrues; kandidatët HTTP për teste të lejuara të formularëve publikë janë të disponueshëm në listën e proxy-ve HTTP. Pika përfundimtare e formularit duhet të zëvendësohet me një shërbim të destinuar për të pranuar dërgimin. Dokumentacioni i proxy-t të Net::HTTP përshkruan gjithashtu kredencialet e proxy-t dhe cilësimet e nxjerra nga mjedisi.
Lexoni përgjigjen para se të fajësoni proxy-n
Një server që refuzon një formular mund të prodhojë një gabim HTTP pasi rruga përmes proxy-t ka funksionuar saktë. Kontrolloni statusin e përgjigjes dhe kërkesat e destinacionit: metodën, llojin e përmbajtjes, fushat e formularit, cookie-t dhe çdo token kërkese.
Një sfidë vërtetimi e proxy-t vjen nga proxy. Një hyrje në aplikacion ose një formular i refuzuar i përkasin destinacionit. Mbani kredencialet e tyre të ndara. Shtimi i fjalëkalimit të destinacionit në konfigurimin e proxy-t nuk mund të plotësojë hyrjen në destinacion.
Rregullat e kokave të përcjelljes të Squid janë një burim tjetër i mundshëm konfuzioni. Politika e tyre në anën e serverit është e ndarë nga ndërtimi i një POST të vlefshëm të Ruby. Mos ndryshoni rregullat e kokave të një proxy të përbashkët vetëm sepse formulari dështoi një herë.
Për provat e përsëritura, konsideroni nëse dërgimi i parë mund të jetë përpunuar tashmë. Një përgjigje e humbur nuk është provë që një POST nuk arriti kurrë te aplikacioni.