بسته curl در R از libcurl استفاده می‌کند. بنابراین یک پروکسی در محیط فرایند می‌تواند اعمال شود حتی وقتی curl_fetch_memory هیچ آرگومان پروکسی در فراخوانی ندارد:

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

محیط را پیش از آماده کردن درخواست تنظیم کنید. از یک نقطه پایانی کامل، شامل scheme و port مورد نظر، استفاده کنید، نه اینکه فرض کنید یک نام میزبان خالی به معنای پروتکل درست است. برای درخواست‌های مجاز به وب‌سایت‌های عمومی، فهرست پروکسی HTTP نامزدهایی برای URLهای پروکسی HTTP نمونه‌ها فراهم می‌کند.

ALL_PROXY یک مسیر جایگزین است. متغیر محیطی پروکسی برای پروتکل مقصد اولویت دارد، و عبور NO_PROXY منطبق هنوز می‌تواند اتصال مستقیم را انتخاب کند. وقتی تغییر ALL_PROXY بی‌اثر به نظر می‌رسد، آن مقادیر را بررسی کنید.

برای مسیری که به یک handle تعلق دارد، آن را صریح تنظیم کنید:

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

گزینه پروکسی handle انتخاب پروکسی از محیط را نادیده می‌گیرد؛ سیاست عبور همچنان مرتبط است. گزینه پروکسی به‌طور صریح خالی، استفاده از پروکسی را حتی وقتی متغیر محیطی پروکسی وجود دارد غیرفعال می‌کند.

این تنظیمات بر فرایند در حال اجرای R و درخواست‌های curl اثر می‌گذارد. شروع یک نشست R دیگر یا استفاده از بسته‌ای با پیاده‌سازی شبکه‌ای دیگر می‌تواند مسیر متفاوتی پدید آورد.

مقالات مرتبط