Я хочу назвать API House House от R на удаленном Linux-сервере под управлением Ubuntu 14.04 LTS. Я начинаю R от терминала, и я использую пакет «HTTR» и делает запрос на следующий GET (используя «Paul + Додда» как термин пример поиска):Ошибка SSL-соединения при вызове API-интерфейсов компаний из R на удаленном Linux-сервере
call <- GET("https://api.companieshouse.gov.uk/search/companies?q=Paul+Dodd&items_per_page=50&start_index=1", authenticate("API_KEY_HERE", ""))
Вы можете подать заявление на компании House API и получить дополнительную информацию об API здесь: https://developer.companieshouse.gov.uk/api/docs/index.html
Ответ от вызова API должен быть сложным списком информации о компании.
Однако я получаю следующее сообщение об ошибке:
Ошибка в завиток :: curl_fetch_memory (URL, ручка = ручка): SSL подключения ошибку
Я попытался set_config(config(ssl_verifypeer = 0L))
, который иногда дает правильный объект ответа, но, как правило, дает либо ошибку SSL выше или следующее сообщение об ошибке:
Сбой при получении данных от партнера
Вышеупомянутый вызов API работает при запуске R на рабочем столе Windows (под управлением Windows 7) и на моем Mac. Вызов API работает с нескольких IP-адресов.
Я установил следующие зависимости на удаленном сервере и модернизирован и обновлен, но ошибка повторяется:
sudo apt-get upgrade
sudo apt-get update
sudo apt-get install libcurl4-openssl-dev
sudo apt-get install libssl-dev
Наконец, когда я выхожу R и запустить вызов API в терминале удаленного сервера я получаю правильный ответ. Команда, которую я использовал это следующим образом:
curl -u"API_KEY_HERE": https://api.companieshouse.gov.uk/search/companies?q=Paul+Dodd&items_per_page=50&start_index=1
Я подозреваю, что SSL подключения ошибка в R может быть проблема с сертификатами CA, однако я на пределе моих знаний SSL. Есть ли у вас какие-либо предложения относительно того, как я могу это исправить, чтобы я мог вызвать API из R с помощью httr?
Вы просматривали конкретный порт на брандмауэре, останавливающем SSL? Я не уверен в архитектуре Linux, но возможно ли, что сертификаты могут храниться локально, а не запрашивать новый каждый раз? –