Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R post/post表单上传问题_R_Authentication_Curl_Oauth_Httr - Fatal编程技术网

R post/post表单上传问题

R post/post表单上传问题,r,authentication,curl,oauth,httr,R,Authentication,Curl,Oauth,Httr,我正在尝试通过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" P

我正在尝试通过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一起工作,如果有人帮助解释为什么它不能与POST一起工作,那就太好了

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

httpheader对于
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
选项所做的


注意,我发现使用像这样的站点可以更容易地解决这些问题。通过发布到该站点,您可以准确地看到发送到服务器的内容,以及两种方法之间请求的差异。

对于
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
选项所做的

注意,我发现使用像这样的站点可以更容易地解决这些问题。通过发布到该站点,您可以确切地看到发送到服务器的内容,以及两种方法之间请求的差异