Cieľ formulára ponechajte v požiadavke a proxy v konfigurácii pripojenia. Proxy nepotrebuje špeciálne pole formulára s požadovanou URL, ak nepoužívate web-proxy rozhranie konkrétnej webovej stránky.

Pre Net::HTTP v Ruby možno explicitný HTTP proxy zadať pri vytváraní klienta:

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 je ilustratívny; HTTP kandidáti na povolené testy verejných formulárov sú dostupní v zozname HTTP proxy. Koncový bod formulára treba nahradiť službou určenou na prijímanie odoslania. Dokumentácia proxy v Net::HTTP tiež opisuje prihlasovacie údaje proxy a nastavenia proxy odvodené z prostredia.

Prečítajte si odpoveď, kým obviníte proxy

Server, ktorý formulár odmietne, môže vrátiť chybu HTTP po tom, čo trasa cez proxy fungovala správne. Skontrolujte stav odpovede a požiadavky cieľa: metódu, typ obsahu, polia formulára, cookies a akýkoľvek token požiadavky.

Výzva na overenie proxy pochádza z proxy. Prihlásenie do aplikácie alebo odmietnutý formulár patria cieľu. Uchovávajte ich prihlasovacie údaje oddelene. Pridanie hesla cieľa do konfigurácie proxy nemôže splniť prihlásenie cieľa.

Pravidlá pre posielané hlavičky Squid sú ďalším možným zdrojom zmätku. Ich politika na strane servera je oddelená od zostavenia platného POST v Ruby. Nemeňte pravidlá hlavičiek zdieľaného proxy len preto, že formulár raz zlyhal.

Pri opakovaných pokusoch zvážte, či prvé odoslanie už nemohlo byť spracované. Strata odpovede nie je dôkazom, že POST nikdy nedorazil do aplikácie.

Súvisiace články