R jsonlite - fromJSON总是在open.connection中返回Error?

时间:2017-03-11 19:26:18

标签: r shiny jsonlite

为什么我总是会遇到fromJSON的连接错误?有时它很好。大部分时间都不是。

> # Load json and other packages.
> library(jsonlite)
> 
> # Live server.
> server <- 'http://0.0.0.0:3000'
> # Stream 143
> key <- '9p06nngO2pcQM03nIJ71dLXNA1v'
> 
> # Retrieve json data from the data platform via the URLs.
> streams <- fromJSON(paste(server, '/output/streams', sep=""), flatten=TRUE)

结果:

  

open.connection错误(con,&#34; rb&#34;):无法连接到服务器

如果我再试一次:

> streams <- fromJSON(paste(server, '/output/streams', sep=""), flatten=TRUE)

错误:

  

open.connection错误(con,&#34; rb&#34;):服务器什么都没有返回(没有   标题,没有数据)

但是服务器很好。它正在运行。

我有什么想法可以解决这个问题吗?

或者用于从服务器获取json数据的任何其他更好,更可靠的包?

2 个答案:

答案 0 :(得分:1)

在我看来,public_key字段中有一些特殊字符。例如:

Gurl<-"http://139.162.208.52:3000/output/stream?public_key=9p06nngO2pcQM03nIJ71dLXNA1v"
Burl<-"http://139.162.208.52:3000/output/stream?public_key=9p06nngO‌​2pcQM03nIJ71dLXNA1v"
#this seems to work
fromJSON(Gurl, flatten=TRUE)
#this doesn't
fromJSON(Burl, flatten=TRUE)

BurlGurl显然只是相同:

Gurl==Burl
#[1] FALSE

您可以检查上述网址的raw内容(使用charToRaw)并查看Encoding以发现差异。

答案 1 :(得分:-1)

EG。 Php,basic只是通过json_encode从服务器获取数据 你使用什么编程语言?对于后端