如何增加RStudio连接超时限制?解决googleLanguageR认证超时问题
解决googleLanguageR调用gl_auth时的curl超时问题
我之前也碰到过一模一样的情况,你设置的options(timeout = ...)其实只对R的基础网络请求(比如下载包)生效,但googleLanguageR依赖的httr包会创建独立的curl请求句柄,完全不受这个全局设置影响。给你几个针对性的解决方案:
直接在gl_auth中传入超时配置
调用gl_auth的时候,通过config参数传入httr的超时设置,这里的超时值单位是秒,比如设置60秒超时:library(googleLanguageR) gl_auth("your-service-account-key.json", config = httr::config(timeout = 60))这个方法最直接,只针对googleLanguageR的认证请求生效。
全局设置httr的默认超时
如果不想每次调用都传参数,可以设置httr的全局默认配置,这样所有基于httr的请求(包括googleLanguageR的其他API调用)都会沿用这个超时:options(httr_config = httr::config(timeout = 60)) library(googleLanguageR) gl_auth("your-service-account-key.json")排查网络环境问题
如果上面的设置还是超时,大概率是网络层面的问题:- 检查是否需要代理访问Google服务,如果需要,同样可以通过
httr::config添加代理配置:gl_auth("your-key.json", config = httr::config( timeout = 60, proxy = "http://your-proxy-address:port" )) - 先用基础curl命令测试网络连通性,确认不是网络本身的问题:
如果这个命令也超时,那你需要先解决网络访问的问题,比如调整代理或者检查防火墙设置。curl::curl_fetch_memory("https://speech.googleapis.com/", handle = curl::new_handle(timeout = 60))
- 检查是否需要代理访问Google服务,如果需要,同样可以通过
重新安装最新版googleLanguageR
虽然你已经试过开发版,可以再强制安装一次最新版本,避免旧版本的配置bug:devtools::install_github("MarkEdmondson1234/googleLanguageR", force = TRUE)
另外补充一下,你之前看到超时时间变成10015毫秒,是因为googleLanguageR默认的curl超时就是10秒,你修改的全局timeout参数根本没影响到它,所以才会只多了15毫秒的误差。
内容的提问来源于stack exchange,提问作者SAJ
相关产品推荐
相关产品推荐

