Gói curl trong R dùng libcurl. Vì vậy proxy từ môi trường tiến trình có thể áp dụng ngay cả khi curl_fetch_memory không có đối số proxy trong lời gọi:

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

Đặt môi trường trước khi chuẩn bị yêu cầu. Dùng điểm cuối đầy đủ, bao gồm scheme và port dự định, thay vì giả định rằng chỉ tên máy chủ là đủ cho giao thức đúng. Với các yêu cầu được phép tới trang công khai, danh sách proxy HTTP cung cấp ứng viên cho các URL proxy HTTP trong ví dụ.

ALL_PROXY là đường dự phòng. Biến môi trường proxy cho giao thức của đích được ưu tiên, và việc bỏ qua NO_PROXY khớp vẫn có thể chọn kết nối trực tiếp. Hãy kiểm tra các giá trị đó khi việc đổi ALL_PROXY có vẻ không có tác dụng.

Với một tuyến thuộc về một handle, hãy cấu hình nó rõ ràng:

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

Tùy chọn proxy của handle ghi đè việc chọn proxy từ môi trường; chính sách bỏ qua vẫn liên quan. Tùy chọn proxy rỗng một cách rõ ràng sẽ tắt việc dùng proxy ngay cả khi có biến môi trường proxy.

Các cài đặt này ảnh hưởng đến tiến trình R đang chạy và các yêu cầu của curl. Khởi động một phiên R khác hoặc dùng gói có cách triển khai mạng khác có thể cho một tuyến khác.

Bài viết liên quan