0

这个问题与我之前的问题有关阅读 R 中的原始数据以使用 dropbox api 保存为 .RData 文件

当我的路径包含非 url 标准字符时,我遇到了问题

上一个问题中的 db.file.name 只是 Dropbox 中相关文件的路径。

但是路径中有一个空格和感叹号。我有一种感觉,这些需要转换为相关格式,以便 GET 请求可以工作......但不太确定转换是什么......

所以使用并继续我之前的例子......

require(httr)
require(RCurl)
db.file.name <- "!! TEST FOLDER/test.RData"
db.app <- oauth_app("db",key="xxxxx", secret="xxxxxxx")
db.sig <- sign_oauth1.0(db.app, token="xxxxxxx", token_secret="xxxxxx")

response <- GET(url=paste0("https://api-content.dropbox.com/1/files/dropbox/",curlEscape(db.file.name)),config=c(db.sig,add_headers(Accept="x-dropbox-metadata")))

响应是一个错误,并且没有下载文件...使用文档页面https://www.dropbox.com/developers/reference/api它建议将 URL 放入 UTF-8 编码...我'我不确定如何做/不确定它是否有效。

任何帮助将不胜感激。

4

2 回答 2

1

我之前很接近...我只需要使用重新插入斜杠gsub才能使 GET 请求正常工作...所以结果是

response <- GET(url=paste0("https://api-content.dropbox.com/1/files/dropbox/",gsub("%2F","/",curlEscape(db.file.name))),config=c(db.sig,add_headers(Accept="x-dropbox-metadata")))
于 2013-01-31T10:19:19.853 回答
0

快速复制过去?iconv

x <- "fa\xE7ile"
Encoding(x) <- "latin1"
charToRaw(xx <- iconv(x, "latin1", "UTF-8"))
[1] 68 74 74 70 3a 2f 2f 73 74 61 63 6b 6f 76 65 72 66 6c 6f 77 2e 63 6f 6d
Encoding(x)
[1] "latin1"
Encoding(xx)
[1] "UTF-8"

这回答了你的问题了吗?

于 2013-01-31T05:55:13.247 回答