Ошибка в UseMethod (& ldquo; http_error & rdquo;) в roadoi

Не забудьте гарантировать, что два разных объекта будут иметь разные адреса. Различные объекты должны иметь разные адреса, поэтому размер пустого класса всегда 1 байт.

3
задан iod 19 March 2019 в 15:32
поделиться

1 ответ

http_error (на самом деле из библиотеки httr) - очень простая функция: она загружает URL, заданный символом (http_error.character), извлекает ответ (http_error.response) и, в конечном счете, смотрит на код ответа (http_error.integer). Если код ответа - >=400, функция возвращает TRUE, в противном случае - FALSE.

Что говорит ваша ошибка, так это то, что вы (или любая функция в вашей цепочке) пытается вызвать http_error для объекта simpleError. Я предполагаю, что ваши настройки брандмауэра блокируют запрос. Поскольку запрос заблокирован, базовый httr::RETRY (который вызывается из oadoi_fetch) возвращает ошибку вместо правильного объекта ответа, и http_error видит только этот объект ошибки и разрывает.

Если я локально отключаю свой прокси (через который я могу делать запросы), я также получаю сообщение об ошибке:

library(roadoi)
Sys.unsetenv(c("HTTP_PROXY", "HTTPS_PROXY"))
oadoi_fetch("10.1038/nature12373", email = "name@whatever.com")
# Error in UseMethod("http_error") : 
#   no applicable method for 'http_error' applied to an object of class
#   "c('simpleError', 'error', 'condition')"

Как только мой прокси настроен правильно, я получаю

[ 111]

Если проблема действительно заключается в прокси, я бы попробовал следующее, что помогло мне на моей корпоративной машине с Windows, но может зависеть от ваших локальных настроек ИТ:

## get the proxy settings
system("netsh winhttp show proxy")
Sys.setenv(HTTP_PROXY = <the proxy from netsh>, HTTPS_PROXY = <the proxy from netsh>)

[1122 На самом деле, вы можете легко воспроизвести ошибку:

httr::http_error(simpleError("Cannot reach the page"))
# Error in UseMethod("http_error") : 
#   no applicable method for 'http_error' applied to an object of class 
#   "c('simpleError', # 'error', 'condition')"
0
ответ дан thothal 19 March 2019 в 15:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: