Пошаљите Ruby Net::HTTP POST кроз прокси
Подесите Ruby HTTP везу са експлицитним проксијем, а затим пошаљите податке обрасца на одредиште.
Држите одредиште обрасца у захтеву, а прокси у конфигурацији везе. Проксију није потребно посебно поље обрасца са URL-ом који желите, осим ако користите веб-прокси интерфејс одређеног сајта.
За Ruby-јев Net::HTTP експлицитни 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 правила заглавља прослеђивања још су један могући извор забуне. Њихова политика на страни сервера одвојена је од изградње ваљаног Ruby POST-а. Не мењајте правила заглавља дељеног проксија само зато што је образац једном пао.
За поновне покушаје размотрите да ли је прво слање већ можда обрађено. Изгубљени одговор није доказ да POST никада није стигао до апликације.