【问题标题】:curl -X POST command with RCurl带有 RCurl 的 curl -X POST 命令
【发布时间】:2013-10-04 01:55:21
【问题描述】:

我正在尝试使用 R 中的 RCurl 包使以下包含 XML 的 HTTP POST 工作:

curl -X POST 'https://api.example.com/resource.xml' -d 'From=value' 
-d 'To=value' -d    'Body=value' -u username:password

我使用命令行运行上述代码没有问题,但是当我尝试在 RCurl 包中使用 postForm 时,我遇到了问题。

这是我在 RCurl 中使用 postForm 的尝试:

postForm('https://api.example.com/resource.xml',
userpwd="username:password",From='value',To='value',Body='value')

似乎提供用户名/密码是主要问题。我可以毫无问题地传递参数。

【问题讨论】:

  • 尝试使用.opts 参数。它需要一个命名列表(例如:.opts=list(From="value", To="value") 等)
  • 提醒,命令行中的-X用法是多余的:stackoverflow.com/questions/8498371/curl-get-and-xget
  • 发布了我的(悲伤的)RCurl 尝试。
  • 我在上面的代码中传递参数没有问题。只有当我需要提供用户名:密码时才会收到错误消息。

标签: r post curl rcurl


【解决方案1】:

您错误地指定了userpwd 参数。试试:

postForm('https://api.example.com/resource.xml',
         From='value',
         To='value',
         Body='value',
         .opts=list(userpwd="username:password"))

注意:RCurl 语法有点特殊,所以在 postForm 中,... 参数指的是 HTTP 标头,而在 getURL(来自 your previous question)中,... 参数指 curl 选项。这可能就是让你绊倒的原因。

【讨论】:

  • 是的,我确实发现 RCurl 语法不一致,文档也不清楚。
猜你喜欢
  • 1970-01-01
  • 2011-08-15
  • 1970-01-01
  • 1970-01-01
  • 2018-07-28
  • 2015-12-31
  • 2017-09-29
  • 2023-01-15
  • 1970-01-01
相关资源
最近更新 更多