แพ็กเกจ 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 อื่นหรือใช้แพ็กเกจที่มีการใช้งานเครือข่ายอื่นอาจให้เส้นทางที่แตกต่าง

บทความที่เกี่ยวข้อง