Трымайце прызначэнне формы ў запыце, а проксі — у канфігурацыі злучэння. Проксі не патрабуе спецыяльнага поля формы з патрэбным вам URL, калі вы не выкарыстоўваеце вэб-проксі-інтэрфейс пэўнага сайта.

Для Net::HTTP у Ruby явны HTTP-проксі можна падаць пры стварэнні кліента:

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

Проксі прыведзены для ілюстрацыі; HTTP-кандыдаты для дазволеных тэстаў публічных формаў ёсць у спісе HTTP-проксі. Канечную кропку формы трэба замяніць сэрвісам, прызначаным прымаць адпраўку. Дакументацыя проксі Net::HTTP таксама апісвае ўліковыя даныя проксі і налады проксі з асяроддзя.

Прачытайце адказ, перш чым вінаваціць проксі

Сервер, які адхіляе форму, можа выдаць памылку HTTP пасля таго, як маршрут праз проксі спрацаваў слушна. Праверце статус адказу і патрабаванні прызначэння: метад, тып змесціва, палі формы, кукі і любы токен запыту.

Выклік аўтэнтыфікацыі проксі паходзіць ад проксі. Уваход у праграму або адхіленая форма адносяцца да прызначэння. Трымайце іх уліковыя даныя асобна. Даданне пароля прызначэння ў канфігурацыю проксі не можа задаволіць уваход прызначэння.

Правілы загалоўкаў перасылкі Squid — яшчэ адна магчымая крыніца блытаніны. Іх серверная палітыка асобная ад пабудовы слушнага POST у Ruby. Не змяняйце правілы загалоўкаў агульнага проксі толькі таму, што форма аднойчы не ўдалася.

Для паўторных спроб падумайце, ці першая адпраўка ўжо магла быць апрацавана. Страчаны адказ не даказвае, што POST ніколі не дасягнуў праграмы.

Падобныя артыкулы