Выкарыстоўвайце спецыяльную базавую опцыю проксі open-uri для прамежкавага ўліковага запісу:

require 'open-uri'

body = URI.open(
  'https://example.com/',
  proxy_http_basic_authentication: [
    'http://203.0.113.10:8080',
    ENV.fetch('PROXY_USER'),
    ENV.fetch('PROXY_PASSWORD')
  ],
  open_timeout: 5,
  read_timeout: 10
) { |response| response.read }

Замяніце адрас з дакументацыі і бярыце значэнні ўліковага запісу з належнай крыніцы сакрэтаў. Не змяшчайце пароль у URL, які пазней могуць надрукаваць выключэнне або справаздача падтрымкі.

Опцыя OpenReadПрызначэнне
proxy_http_basic_authenticationАдрас проксі і яго базавыя імя карыстальніка/пароль.
proxyВыбар проксі без гэтай сумяшчанай аўтэнтыфікаванай опцыі; калі падаць абодва, узнікне памылка аргумента.
http_basic_authenticationУліковы запіс сервера прызначэння.
proxy: nilЗрабіце гэтае чытанне прамым нягледзячы на прадвызначэнні асяроддзя.

Без яўнай опцыі проксі open-uri можа выкарыстоўваць зменныя асяроддзя проксі для канкрэтнай схемы. Аўтэнтыфікаваная опцыя ўжо ўтрымлівае свой адрас; ёй не патрэбна другое значэнне proxy.

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

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