Houd de bestemming van het formulier in het verzoek en de proxy in de verbindingsconfiguratie. Een proxy heeft geen speciaal formulierveld met de gewenste URL nodig, tenzij je de web-proxy-interface van een specifieke website gebruikt.

Voor Ruby's Net::HTTP kan een expliciete HTTP-proxy worden opgegeven bij het aanmaken van de client:

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) }

De proxy is illustratief; HTTP-kandidaten voor toegestane tests van openbare formulieren staan in de HTTP-proxylijst. Het formulier-eindpunt moet worden vervangen door een dienst die bedoeld is om de inzending te accepteren. De proxydocumentatie van Net::HTTP beschrijft ook proxy-inloggegevens en proxy-instellingen die van de omgeving zijn afgeleid.

Lees het antwoord voordat je de proxy de schuld geeft

Een server die een formulier weigert, kan een HTTP-fout produceren nadat de proxy-route correct heeft gewerkt. Controleer de responsstatus en de vereisten van de bestemming: methode, inhoudstype, formuliervelden, cookies en een eventueel verzoektoken.

Een proxy-authenticatie-uitdaging komt van de proxy. Een applicatielogin of een geweigerd formulier hoort bij de bestemming. Houd hun inloggegevens gescheiden. Het toevoegen van een bestemmingswachtwoord aan de proxyconfiguratie kan de login van de bestemming niet vervullen.

De doorgifte-headerregels van Squid zijn een andere mogelijke bron van verwarring. Hun beleid aan de serverkant staat los van het bouwen van een geldige Ruby POST. Wijzig de headerregels van een gedeelde proxy niet alleen omdat het formulier één keer mislukte.

Overweeg bij nieuwe pogingen of de eerste inzending al verwerkt kan zijn. Een verloren antwoord is geen bewijs dat een POST de applicatie nooit heeft bereikt.

Gerelateerde artikelen