#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)
в конец прокси. Надеюсь, это поможет кому-нибудь в будущем. Спасибо, ребята.