R의 curl 패키지는 libcurl을 사용합니다. 따라서 curl_fetch_memory 호출에 프록시 인자가 없어도 프로세스 환경의 프록시가 적용될 수 있습니다:

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

요청을 준비하기 전에 환경을 설정하세요. 호스트 이름만으로 올바른 프로토콜이 정해진다고 가정하지 말고, 의도한 scheme과 port를 포함한 전체 엔드포인트를 사용하세요. 허용된 공개 사이트 요청에는 HTTP 프록시 목록이 예제의 HTTP 프록시 URL 후보를 제공합니다.

ALL_PROXY는 대체 경로입니다. 대상 프로토콜에 대한 프록시 환경 변수가 우선하며, 일치하는 NO_PROXY 우회가 있으면 여전히 직접 연결이 선택될 수 있습니다. ALL_PROXY를 바꿔도 효과가 없어 보일 때는 그 값들을 확인하세요.

하나의 핸들에 속한 경로는 명시적으로 구성하세요:

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

핸들의 프록시 옵션은 환경 프록시 선택을 덮어씁니다. 우회 정책은 여전히 관련이 있습니다. 명시적으로 빈 프록시 옵션은 프록시 환경 변수가 있어도 프록시 사용을 비활성화합니다.

이 설정은 실행 중인 R 프로세스와 curl 요청에 영향을 줍니다. 다른 R 세션을 시작하거나 다른 네트워크 구현을 가진 패키지를 사용하면 다른 경로가 될 수 있습니다.

관련 글