Držite odredište obrasca u zahtevu, a proxy u konfiguraciji veze. Proxyju nije potrebno posebno polje obrasca sa URL-om koji želite, osim ako koristite veb-proxy interfejs određenog sajta.

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 dozvoljene testove javnih obrazaca dostupni su na listi HTTP proxyja. Krajnju tačku obrasca treba zameniti servisom namenjenim prihvatanju slanja. Net::HTTP dokumentacija o proxyju takođe opisuje proxy akreditive i postavke proxyja izvedene iz okruženja.

Pročitajte odgovor pre nego što okrivite proxy

Server koji odbija obrazac može proizvesti HTTP grešku nakon što je proxy ruta ispravno radila. Proverite status odgovora i zahteve odredišta: metodu, tip sadržaja, polja obrasca, kolačiće i eventualni token zahteva.

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

Squid pravila zaglavlja prosleđivanja još su jedan mogući izvor zabune. Njihova politika na strani servera odvojena je od izgradnje valjanog Ruby POST-a. Ne menjajte pravila zaglavlja deljenog proxyja samo zato što je obrazac jednom pao.

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

Povezani članci