【问题标题】:Simple Curl -H in RR中的简单卷曲-H
【发布时间】:2015-06-24 18:15:04
【问题描述】:

我想做

curl -H "Authorization: Basic YOUR_API_KEY" -d '{"classifier_id":155, "value":"TEST"}' "https://www.machinelearningsite.com/language/classify"

我试过了

  h = getCurlHandle(header = TRUE, userpwd = YOUR_API_KEY, netrc = TRUE)
out <- getURL("https://www.machinelearningsite.com/language/classify?classifier_id=155&value=TEST", curl=h,ssl.verifypeer=FALSE)

但它说方法不允许

【问题讨论】:

  • 你有什么操作系统?
  • Windows 8.1。知道你可以调用一个 linux 命令,但这在 Windows 上不起作用,所以我需要一个通用的解决方案

标签: r curl rcurl


【解决方案1】:

curl 命令行参数转换为httr 调用要容易得多:

library(httr)

result <- GET("https://www.machinelearningsite.com/language/classify",
              add_headers(Authorization=sprintf("Basic %s", YOUR_API_KEY),
              query=list(classifier_id=155, value="TEST")))

理想情况下,YOUR_API_KEY 将是一个环境变量,因此您可以将其更改为:

result <- GET("https://www.machinelearningsite.com/language/classify",
              add_headers(Authorization=sprintf("Basic %s", Sys.getenv("YOUR_API_KEY")),
              query=list(classifier_id=155, value="TEST")))              

你可以这样做:

content(result)

检索实际数据。

【讨论】:

  • add_headers 中的错误(Authorization = sprintf("Basic %s", key), query = params(classifier_id = model, : 找不到函数“params”
  • 我试过 classifier.io/language/classify", add_headers(Authorization=sprintf("Basic %s", "abcdefg"), query=list(classifier_id="1234", value= "TESTtetx")))
  • 错误:is.character(headers) 不是 TRUE
  • 是的。它应该是list。解决它。如果没有有效的站点进行测试,我将无能为力。你甚至可以在这里查看stackoverflow.com/a/22672642/1457051 的另一个样本httradd_headers
  • 我认为你可以使用authenticate()而不是像野人一样手动添加标题
猜你喜欢
  • 2011-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-20
  • 2012-04-04
  • 1970-01-01
  • 2016-07-19
  • 2012-04-08
相关资源
最近更新 更多