【问题标题】:R post/postform upload issueR post/postform上传问题
【发布时间】:2016-02-23 16:40:00
【问题描述】:

我正在尝试通过 API 将文件上传到平台

来自终端的 CUrl 请求工作正常

curl -v --trace-ascii trace.txt -H "Authorization: Bearer XXXX-XXXX-XXXX-XXXX" -F "file=@test1234.txt;type=text/txt" https://xxx.YYYY/upload

但在 R 中,当我使用 Post 时出现状态 500 错误

outfilename="/Volumes/Work/texttest.txt"


POST(url="https://xxx.YYYY/upload",body = upload_file(
path =  outfilename,
type = 'text/txt'),
verbose(),add_headers(Authorization=paste0("Bearer     ",btoken$access_token)))

或

postForm(uri="https://xxx.YYYY/upload",file = fileUpload(
filename =  outfilename, contentType = 'text/txt'),
add_headers(Authorization=paste0("Bearer ",btoken$access_token)))

有人可以帮忙吗?

编辑:让它与 postForm 一起使用,如果有人帮助解释为什么它不能与 POST 一起使用,那就太好了

httpheader <- c(Authorization=paste0("Bearer ",btoken$access_token))
status<-postForm(uri=paste0(server,"upload"),file = fileUpload(filename =  outfilename),.opts=list(httpheader=httpheader))

【问题讨论】:

    标签: r authentication curl oauth httr


    【解决方案1】:

    对于POST,最相似的翻译是

    POST(url="https://xxx.YYYY/upload",
      body = list(file=upload_file(
        path =  outfilename,
        type = 'text/txt')
      ),
      verbose(),
      add_headers(Authorization=paste0("Bearer XXXX-XXXX-XXXX-XXXX"))
    )
    

    注意body= 是一个列表。这会将数据作为表单数据提交,这就是 curl -F 选项的作用。

    请注意,我发现使用像http://requestb.in/ 这样的网站可以更轻松地解决这些问题。通过发布到该站点,您可以准确查看发送到服务器的内容,并了解两种方法之间的请求有何不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-08
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2015-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多