【发布时间】:2019-05-29 15:40:03
【问题描述】:
我正在使用 R 调用 Cybersource API。当我使用 GET 请求时,我获得了 200 的成功响应。当我读取响应的正文而不是取回 csv 数据时,我得到了一个 csv 文件路径的路径。我想知道我做错了什么。
content(request)给了
"/space/download_reports/output/dailyreports/reports/2018/10/27/testrest/TRRReport-7931d82d-cf4a-71fa-e053-a2588e0ab27a.csv"
content(request) 的结果应该是数据而不是文件路径。
这是代码
library('httr')
merchant<-'testrest'
vcdate<-'Wed, 29 May 2019 10:09:48 GMT'
ho<-'apitest.cybersource.com'
URL<-'https://apitest.cybersource.com/reporting/v3/report-downloads?organizationId=testrest&reportDate=2018-10-27&reportName=TRRReport'
sign<-'keyid="08c94330-f618-42a3-b09d-e1e43be5efda", algorithm="HmacSHA256", headers="host (request-target) v-c-merchant-id", signature="7cr6mZMa1oENhJ5NclGsprmQxwGlo1j3VjqAR6xngxk="'
req<-GET(URL, add_headers(.headers=c('v-c-merchant-id'=merchant, 'v-c-date'=vcdate, 'Host'=ho, 'Signature'=sign)))
content(req)
这是 Cybersource 测试 api,您可以在其中验证生成的数据。
https://developer.cybersource.com/api/reference/api-reference.html
我正在尝试下载报告标签下的报告
【问题讨论】:
-
您是否尝试过使用
download.file或任何其他功能来下载文件,因为您有了链接? -
如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则更容易为您提供帮助。您确定响应应该是数据吗?似乎它可能正试图向您发送重定向。能否引用 API 文档的相关部分?
-
不,我没有。我在字面上使用 get 请求来调用 api 和 contenet(request) 来读取 ythe api 的正文。在邮递员中,它向我显示了一个 csv 数据而不是路径。我如何使用 download.file。 /space/download_reports/output/dailyreports/reports/2018/10/27/testrest/TRRReport-7931d82d-cf4a-71fa-e053-a2588e0ab27a.csv 看起来不像 URL 路径
-
这看起来像一个相对路径。我怀疑根类似于您为其他 API 调用访问的根。至于使用
download.file,你试过?download.file吗? -
不确定我如何在 httr GET 请求中使用 ?download.file。我已经编辑了我的问题并发布了我的代码。 @MrFlick 是的,它应该是数据。我已经在邮递员中对此进行了测试。
标签: r api mime-types httr