Držite odredište obrasca u zahtjevu, a proxy u konfiguraciji veze. Proxy ne treba posebno polje obrasca s URL-om koji želite, osim ako koristite web-proxy sučelje određenog web-mjesta.

Za Rubyjev Net::HTTP eksplicitni HTTP proxy može se navesti pri stvaranju klijenta:

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 ilustrativan; HTTP kandidati za dopuštene testove javnih obrazaca dostupni su na popisu HTTP proxyja. Krajnju točku obrasca treba zamijeniti servisom namijenjenim prihvaćanju slanja. Net::HTTP dokumentacija o proxyju također opisuje proxy vjerodajnice i postavke proxyja izvedene iz okruženja.

Pročitajte odgovor prije nego okrivite proxy

Poslužitelj koji odbija obrazac može proizvesti HTTP pogrešku nakon što je proxy ruta ispravno radila. Provjerite status odgovora i zahtjeve odredišta: metodu, vrstu sadržaja, polja obrasca, kolačiće i eventualni token zahtjeva.

Izazov proxy autentifikacije dolazi od proxyja. Prijava u aplikaciju ili odbijeni obrazac pripadaju odredištu. Držite njihove vjerodajnice odvojeno. Dodavanje lozinke odredišta u konfiguraciju proxyja ne može zadovoljiti prijavu na odredište.

Squidova pravila zaglavlja prosljeđivanja još su jedan mogući izvor zabune. Njihova politika na strani poslužitelja odvojena je od izgradnje valjanog Ruby POST-a. Ne mijenjajte pravila zaglavlja zajedničkog proxyja samo zato što je obrazac jednom pao.

Za ponovne pokušaje razmotrite je li prvo slanje već možda obrađeno. Izgubljeni odgovor nije dokaz da POST nikada nije stigao do aplikacije.

Povezani članci