2016-12-19 27 views
0

取决于我调用的API我从getURIAsynchronous接收不同的对象类型。当我查询谷歌API我得到的字符串的矢量,但在Route360的情况下,返回二进制原始的响应。我能以某种方式强制这个函数接受它作为一个正常的文本?来自RCurl的getURIAsynchronous的二进制输出

下面是从他们的网站例如API密钥的Route360例如要求:

> url <- "https://service.route360.net/germany/v1/polygon?cfg=%7B%22sources%22%3A%5B%7B%22lat%22%3A52.51%2C%22lng%22%3A13.37%2C%22id%22%3A%22%22%2C%22tm%22%3A%7B%22bike%22%3A%7B%7D%7D%7D%5D%2C%22polygon%22%3A%7B%22values%22%3A%5B300%2C600%2C900%2C1200%2C1500%2C1800%5D%2C%22serializer%22%3A%22json%22%2C%22pointReduction%22%3Atrue%7D%7D&cb=jQuery21409533774398208668_1482154160827&key=YWtKiQB7MiZETbCoVsG6&_=1482154160828" 
> response <- getURIAsynchronous(url) 
> typeof(response) 
[1] "raw" 
> head(response) 
    [,1] 
[1,] 1f 
[2,] 8b 
[3,] 08 
[4,] 00 
[5,] 00 
[6,] 00 

回答

0

1F8B是一个GZIP文件的文件幻数。您可以下载到文件扩展名为“gz”的文件,并在R.utils包中使用gunzip(“foo.txt.gz”)。或者可能有一种更简单的方式来处理内存中的数据,而无需再次下载它。

+0

是的,这是gzip,谢谢。你知道如何在不保存,解包,再次加载等情况下即时处理它? – ptero