Utilisez l'option Basic dédiée au proxy d'open-uri pour le compte intermédiaire :

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 }

Remplacez le point de terminaison de la documentation et récupérez les valeurs du compte depuis la source de secrets prévue. Ne placez pas le mot de passe dans une URL qu'une exception ou un rapport de support pourrait imprimer plus tard.

Option OpenReadUsage
proxy_http_basic_authenticationAdresse du proxy et son nom d'utilisateur/mot de passe Basic.
proxySélection du proxy sans cette option authentifiée combinée ; fournir les deux déclenche une erreur d'argument.
http_basic_authenticationCompte du serveur de destination.
proxy: nilRendez cette lecture directe malgré les valeurs par défaut de l'environnement.

Sans option de proxy explicite, open-uri peut utiliser les variables d'environnement de proxy propres au schéma. L'option authentifiée inclut déjà son point de terminaison ; elle n'a pas besoin d'une seconde valeur proxy.

Cette interface gère l'authentification Basic du proxy. Un service exigeant un autre mécanisme nécessite un client compatible ou une intégration approuvée. Laissez la vérification HTTPS activée, puis inspectez l'état/le contenu : une connexion proxy qui fonctionne ne prouve pas que la destination a renvoyé la ressource attendue.

Articles similaires