Use a opção Basic de proxy dedicada do open-uri para a conta intermediária:

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 }

Substitua o endpoint da documentação e obtenha os valores da conta na fonte de segredos pretendida. Não coloque a palavra-passe num URL que uma exceção ou um relatório de suporte possa imprimir mais tarde.

Opção OpenReadUtilização
proxy_http_basic_authenticationEndereço do proxy e o seu utilizador/palavra-passe Basic.
proxySeleção de proxy sem essa opção autenticada combinada; fornecer ambas gera um erro de argumento.
http_basic_authenticationConta do servidor de destino.
proxy: nilTorne esta leitura direta apesar dos padrões do ambiente.

Sem uma opção de proxy explícita, o open-uri pode usar variáveis de ambiente de proxy específicas do esquema. A opção autenticada já inclui o seu endpoint; não precisa de um segundo valor proxy.

Esta interface trata da autenticação Basic do proxy. Um serviço que exija outro mecanismo precisa de um cliente compatível ou de uma integração aprovada. Mantenha a verificação HTTPS ativa e depois inspecione o estado/conteúdo: um início de sessão de proxy funcional não prova que o destino devolveu o recurso esperado.

Artigos relacionados