O pacote curl do R usa libcurl. Um proxy do ambiente do processo pode, portanto, aplicar-se mesmo quando curl_fetch_memory não tem nenhum argumento de proxy na chamada:

Sys.setenv(ALL_PROXY = "http://proxy.example:8080")
result <- curl::curl_fetch_memory("https://www.example.org/")

Defina o ambiente antes de preparar a requisição. Use um endpoint completo, incluindo o scheme e a porta pretendidos, em vez de supor que um simples nome de host significa o protocolo correto. Para requisições permitidas a sites públicos, a lista de proxies HTTP fornece candidatos para os URL de proxy HTTP dos exemplos.

ALL_PROXY é um recurso de reserva. Uma variável de ambiente de proxy para o protocolo do destino tem prioridade, e uma omissão NO_PROXY correspondente ainda pode escolher uma conexão direta. Verifique esses valores quando mudar ALL_PROXY parecer não ter efeito.

Para uma rota que pertence a um único handle, configure-a explicitamente:

handle <- curl::new_handle(proxy = "http://proxy.example:8080")
result <- curl::curl_fetch_memory(
  "https://www.example.org/", handle = handle
)

A opção de proxy do handle substitui a seleção de proxy do ambiente; a política de omissão continua relevante. Uma opção de proxy explicitamente vazia desativa o uso de proxy mesmo quando existe uma variável de ambiente de proxy.

Estes ajustes afetam o processo R em execução e as requisições do curl. Iniciar outra sessão R ou usar um pacote com outra implementação de rede pode produzir uma rota diferente.

Artigos relacionados