网页在浏览器中工作,但在R:SSL证书问题:证书已过期

fdbelqdn  于 2022-11-24  发布在  其他
关注(0)|答案(3)|浏览(219)

This url在浏览器中工作,提供一些JSON数据。
它从R一直工作到最近,现在返回:

library(jsonlite)
fromJSON("https://api.worldbank.org/v2/country?format=json")

# Error in open.connection(con, "rb") : 
#   SSL certificate problem: certificate has expired

library(rvest)
read_html("https://api.worldbank.org/v2/country?format=json")

# Error in open.connection(con, "rb") : 
#   SSL certificate problem: certificate has expired

我目前所知的
我不确定这是API方面的问题,还是R中的某个地方?

  • 似乎有一个类似的解决方案here,尽管我使用的任何解决方案都不能使用浏览器自动化(selenium),而必须使用jsonlite或rvest
ego6inou

ego6inou1#

对于其他有类似问题的人
原因
网站所有者的SSL证书已过期。
我可以通过这个网站确认这一点:

(不完全)解决方案

由于我无法控制URL的SSL证书,我只是将所有使用的URL从https更改为http
例如:

"https://api.worldbank.org/v2/country?format=json"

变更至

"http://api.worldbank.org/v2/country?format=json"
qlckcl4x

qlckcl4x2#

我实际上也有这个问题......无论哪种方式,我都无法访问它。我得到以下错误消息(当然,WDIcache()也不起作用)

Error in file(con, "r") : cannot open the connection to 'http://api.worldbank.org/indicators?per_page=25000&format=json'
evrscar2

evrscar23#

您必须在R中使用以下命令设置ssl设置

httr::set_config(config(ssl_verifypeer = FALSE, ssl_verifyhost = FALSE))

相关问题