Das curl-Paket von R nutzt libcurl. Ein Proxy aus der Prozessumgebung kann daher greifen, selbst wenn curl_fetch_memory im Aufruf kein Proxy-Argument hat:

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

Legen Sie die Umgebung fest, bevor die Anfrage vorbereitet wird. Verwenden Sie einen vollständigen Endpunkt einschließlich des vorgesehenen Scheme und Ports, statt anzunehmen, ein bloßer Hostname bedeute das richtige Protokoll. Für zulässige Anfragen an öffentliche Websites liefert die HTTP-Proxy-Liste Kandidaten für die HTTP-Proxy-URLs der Beispiele.

ALL_PROXY ist ein Rückfall. Eine Proxy-Umgebungsvariable für das Protokoll des Ziels hat Vorrang, und eine passende NO_PROXY-Umgehung kann weiterhin eine direkte Verbindung wählen. Prüfen Sie diese Werte, wenn eine Änderung von ALL_PROXY wirkungslos zu sein scheint.

Für eine Route, die zu einem Handle gehört, konfigurieren Sie sie explizit:

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

Die Proxy-Option des Handles überschreibt die Auswahl über die Umgebung; die Umgehungsrichtlinie bleibt relevant. Eine ausdrücklich leere Proxy-Option deaktiviert die Proxy-Nutzung, selbst wenn eine Proxy-Umgebungsvariable existiert.

Diese Einstellungen betreffen den laufenden R-Prozess und die Anfragen von curl. Eine andere R-Sitzung zu starten oder ein Paket mit einer anderen Netzwerkimplementierung zu verwenden, kann eine andere Route ergeben.

Ähnliche Artikel