使用 httr 在 R 中卷曲保管箱请求
Curl dropbox request in R using httr
我有这个示例 curl 请求:
curl -X POST https://content.dropboxapi.com/2/files/upload \
--header "Authorization: Bearer fakeaccesstoke12345" \
--header "Dropbox-API-Arg: {\"path\": \"/Homework/math/Matrices.txt\",\"mode\": \"add\"}" \
--header "Content-Type: application/octet-stream" \
--data-binary @local_file.txt
我试过这样翻译成 httr
:
httr::POST(
"https://content.dropboxapi.com/2/files/upload",
add_headers(Authorization = "Bearer fakeaccesstoke12345",
`Dropbox-API-Arg` = paste("{\"path\": \"/folder/", FileName, "\"mode\": \"add\"}", sep = ''),
`Content-Type` = "Content-Type: application/octet-stream"
)
)
这是行不通的。我也不确定 --data-binary
在做什么。文档似乎对此没有任何说明,所以我想知道这是否是 HTTP 中的一些标准参数。
如果需要,可以找到上传点的文档here。
library(httr)
library(jsonlite)
POST(
'https://content.dropboxapi.com/2/files/upload',
add_headers(
Authorization = "Bearer <token>",
`Dropbox-API-Arg` =
jsonlite::toJSON(
list(path = "/books.csv", mode = "add", autorename = TRUE, mute = FALSE),
auto_unbox = TRUE
)
),
content_type("application/octet-stream"),
body = upload_file("books.csv")
)
我有这个示例 curl 请求:
curl -X POST https://content.dropboxapi.com/2/files/upload \
--header "Authorization: Bearer fakeaccesstoke12345" \
--header "Dropbox-API-Arg: {\"path\": \"/Homework/math/Matrices.txt\",\"mode\": \"add\"}" \
--header "Content-Type: application/octet-stream" \
--data-binary @local_file.txt
我试过这样翻译成 httr
:
httr::POST(
"https://content.dropboxapi.com/2/files/upload",
add_headers(Authorization = "Bearer fakeaccesstoke12345",
`Dropbox-API-Arg` = paste("{\"path\": \"/folder/", FileName, "\"mode\": \"add\"}", sep = ''),
`Content-Type` = "Content-Type: application/octet-stream"
)
)
这是行不通的。我也不确定 --data-binary
在做什么。文档似乎对此没有任何说明,所以我想知道这是否是 HTTP 中的一些标准参数。
如果需要,可以找到上传点的文档here。
library(httr)
library(jsonlite)
POST(
'https://content.dropboxapi.com/2/files/upload',
add_headers(
Authorization = "Bearer <token>",
`Dropbox-API-Arg` =
jsonlite::toJSON(
list(path = "/books.csv", mode = "add", autorename = TRUE, mute = FALSE),
auto_unbox = TRUE
)
),
content_type("application/octet-stream"),
body = upload_file("books.csv")
)