【问题标题】:How to get data from API using curl?如何使用 curl 从 API 获取数据?
【发布时间】:2017-11-10 04:08:52
【问题描述】:

(我是 curl 的新手,也是 apigee)

我正在尝试从 API 获取 Body 数据

https://staging.api.pearson.com/content/scapi/urn:pearson:manifestation:014f333d-ceda-476f-81f2-d3d6c89ace42

通过以下命令使用 curl 但无法获取任何数据而不是故障字符串

卷曲“https://staging.api.pearson.com/content/scapi/urn:pearson:manifestation:014f333d-ceda-476f-81f2-d3d6c89ace42

我得到的错误是:

{"fault":{"faultstring":"Failed to resolve API Key variable request.header.x-api key","detail":"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}

但是在浏览器中多次访问 URL 时,我可以根据需要获取 JSON 数据

CURL 工作代码

curl "https://staging.api.pearson.com/content/scapi/urn:pearson:manifestation:014f333d-ceda-476f-81f2-d3d6c89ace42" -H "Accept:application/json"  -H "Accept-Encoding:gzip, deflate, sdch, br" -H "Accept-Language:en-US,en;q=0.8 " -H "Connection:keep-alive" -H "Host:staging.api.pearson.com" -H "X-ApiKey:7ij8zrLkCNR9DtAXx3KJ6yutoYnk4SAx" -H "X-PearsonSSOSession:AQIC5wM2LY4Sfczr6fmuhzvfN4dwnpK3c9K8tyduHkwg7sA.*AAJTSQACMDIAAlNLABQtNTk5Nzg3OTI1MTgxNTYxNjE3MAACUzEAAjAx*"

请有人建议获取 JSON 数据

对不起,我是 curl 和 apigee 的新手

谢谢

【问题讨论】:

标签: curl apigee apigee-baas apigee127


【解决方案1】:
curl "URL" \
 -H "Accept: application/json" \
 -H "x-apikey: {need to pass your API key here}" \
 -H "Content-Type: application/octet-stream"

将您的 x-apikey 放入{需要在此处传递您的 API 密钥}

【讨论】:

  • 嗨 Ravikiran : 出现错误 { "valid" : "false", "reason" : "App APIKey failed" } 但它是正确的 APIKey 但 chrome 如何显示数据?
  • 在chrome goto developer tools和goto network选项卡中,在chrome中查看成功时的api key header是什么
  • 更进一步,所以现在有 18 个响应标头,是否都必须在运行 curl 时设置?
  • 您需要添加请求标头。当您按照图片中的步骤操作时,它只会添加请求标头而不是响应标头
  • 哇,根据您的建议,我得到了答案,我尝试使用 Restlet API 获取数据并获得一些请求标头,然后在 curl 中使用它,现在它可以工作了!真棒男人
【解决方案2】:

正如你所说,在 chrome 中,它正在工作,在成功的请求下,你可以像下面这样复制 curl

【讨论】:

  • 抱歉您的图片链接已损坏
  • 图片链接中显示的进程在运行时显示错误:{"fault":{"faultstring":"Failed to resolve API Key variable request.header.x-apikey","detail": {"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
  • 您应该在请求成功后执行此操作。正如您之前所说,在 chrome 中它可以工作,但不能在 curl 中工作。仅当您仅复制和粘贴 url 时才会发生上述响应。由于您的 chrome 已经缓存了 API 密钥,因此它可以正常工作。
  • 我没有答案
  • 非常感谢拉维基兰!
猜你喜欢
  • 2017-07-14
  • 1970-01-01
  • 2016-03-05
  • 2022-07-07
  • 2015-11-17
  • 1970-01-01
  • 2021-09-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多