2 votes

Problème de connexion R curl fetch : temps d'attente dépassé

J'ai quelques problèmes avec la connexion réseau de R.

library(curl)
req <- curl_fetch_memory("https://eu.httpbin.org/get?foo=123")
Erreur dans curl_fetch_memory("https://eu.httpbin.org/get?foo=123") : 
  Délai d'attente dépassé: [eu.httpbin.org] Opération expirée après 10002 millisecondes sans aucune réception de données

Je n'ai aucun problème lorsque j'accède directement à l'URL ci-dessus dans Microsoft Edge.

httr::GET("http://cran.r-project.org/Rlogo.jpg", config = httr::config(connecttimeout = 60))

Et lorsque je définis spécifiquement le délai d'attente à 60 secondes comme ci-dessus, le code s'est exécuté indéfiniment et j'ai dû l'appeler manuellement.

> sessionInfo()
R version 4.0.3 (2020-10-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19042)

Matrix products: default

locale:
[1] LC_COLLATE=Chinese (Simplified)_China.936 
[2] LC_CTYPE=Chinese (Simplified)_China.936   
[3] LC_MONETARY=Chinese (Simplified)_China.936
[4] LC_NUMERIC=C                              
[5] LC_TIME=Chinese (Simplified)_China.936    

attached base packages:
[1] stats     graphics  grDevices utils     datasets 
[6] methods   base     

other attached packages:
[1] curl_4.3

loaded via a namespace (and not attached):
[1] compiler_4.0.3 tools_4.0.3   
> curl_version()
$version
[1] "7.64.1"

$ssl_version
[1] "(OpenSSL/1.1.1a) Schannel"

$libz_version
[1] "1.2.11"

$libssh_version
[1] "libssh2/1.8.2"

$libidn_version
[1] NA

$host
[1] "x86_64-w64-mingw32"

$protocols
 [1] "dict"   "file"   "ftp"    "ftps"   "gopher"
 [6] "http"   "https"  "imap"   "imaps"  "ldap"  
[11] "ldaps"  "pop3"   "pop3s"  "rtsp"   "scp"   
[16] "sftp"   "smtp"   "smtps"  "telnet" "tftp"  

$ipv6
[1] TRUE

$http2
[1] FALSE

$idn
[1] TRUE

J'ai déjà défini manuellement mon DNS sur 8.8.8.8. Je suis en Chine continentale et j'utilise un VPN pour contourner le GFW.

0voto

LI Shaobai Points 21

J'ai résolu ce problème en me référant à cet article et en ajoutant :(monadresselocalhost) à la fin du proxy. J'espère que cela aidera quelqu'un à l'avenir. Merci, les gars.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X