Το πακέτο curl της R χρησιμοποιεί libcurl. Ένας διαμεσολαβητής από το περιβάλλον της διεργασίας μπορεί επομένως να ισχύσει ακόμη και όταν το curl_fetch_memory δεν έχει όρισμα διαμεσολαβητή στην κλήση:

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

Ορίστε το περιβάλλον πριν προετοιμάσετε το αίτημα. Χρησιμοποιήστε πλήρες τελικό σημείο, μαζί με το επιδιωκόμενο scheme και τη θύρα, αντί να υποθέσετε ότι ένα γυμνό όνομα κεντρικού υπολογιστή σημαίνει το σωστό πρωτόκολλο. Για επιτρεπόμενα αιτήματα προς δημόσιους ιστότοπους, η λίστα διαμεσολαβητών 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 ή η χρήση πακέτου με άλλη υλοποίηση δικτύου μπορεί να δώσει διαφορετική διαδρομή.

Σχετικά άρθρα