Для проміжного облікового запису використовуйте спеціальну базову опцію проксі 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 увімкненою, потім перегляньте статус/вміст: робочий вхід через проксі не доводить, що призначення повернуло очікуваний ресурс.

Схожі статті