Проблема с подключением для выборки R curl: истек тайм-аут

#r #curl #connection #timeout

#r #curl #подключение #тайм-аут

Вопрос:

У меня возникли некоторые проблемы с сетевым подключением R.

 library(curl)
req <- curl_fetch_memory("https://eu.httpbin.org/get?foo=123")
Error in curl_fetch_memory("https://eu.httpbin.org/get?foo=123") : 
  Timeout was reached: [eu.httpbin.org] Operation timed out after 10002 milliseconds with 0 out of 0 bytes received
 

У меня нет проблем при прямом доступе к указанному выше URL-адресу в Microsoft edge.

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

И когда я специально установил тайм-аут равным 60 секундам, как указано выше, код выполнялся вечно, и мне пришлось вручную вызвать его обратно.

 > 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
 

Я уже вручную установил свой DNS на 8.8.8.8.
Я нахожусь в материковом Китае и использую VPN для обхода GFW.

Комментарии:

1. Хм, это может быть проблема с брандмауэром / VPN: оба работают отлично в течение секунды на моей машине, как написано :/

2. Большое вам спасибо. ^_^ Еще какие-нибудь предложения?

3. Вы можете попробовать инструменты трассировки из командной строки ( tracert в Windows, traceroute в большинстве других). Я подозреваю, что это выдаст ту же ошибку и сообщит вам, в чем проблема, но помимо этого я не уверен. Если вы получаете ту же ошибку, вы можете задать дополнительный вопрос, оставив часть R.

4. По-прежнему не работает после отключения брандмауэра.

5. Спасибо за ваш совет. Не удается отследить ни один из указанных URL-адресов, ни google.com . Но URL-адрес материковой части, как baidu.com и weibo.com работает.

Ответ №1:

Я решил эту проблему со ссылкой на эту статью и путем добавления :(mylocalhostaddress) в конец прокси. Надеюсь, это поможет кому-нибудь в будущем. Спасибо, ребята.