gpt4 book ai didi

r - 为什么 R HTTR 内容声明没有生成预期的请求正文?

转载 作者:行者123 更新时间:2023-12-04 15:44:47 28 4
gpt4 key购买 nike

我正在使用 R 调用 Cyber​​source 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)

这是 Cyber​​source 测试 API,您可以在其中验证生成的数据。

https://developer.cybersource.com/api/reference/api-reference.html

我正在尝试在报告选项卡下下载报告

最佳答案

老实说,我不太确定这里发生了什么,但我确实认为我能够让一些东西发挥作用。

API 似乎喜欢以 application/hal+json 格式返回数据,这不是 httr 通常要求的格式。你可以用 accept("*") 说你会接受任何东西,所以你可以用以下方式做你的请求:

req <- GET(URL, add_headers('v-c-merchant-id'=merchant, 
'v-c-date'=vcdate,
'Host'=ho,
'Signature'=sign), accept("*"))

现在我们实际上得到了我们想要的数据,但是 httr 不知道如何自动解析它。所以我们需要自己解析。这似乎可以解决问题

readr::read_csv(rawToChar(content(req)), skip=1)

似乎有一个标题行,我们使用 skip= 跳过它,然后我们使用 readr::read_csv 将其余部分解析为 CSV 文件。

关于r - 为什么 R HTTR 内容声明没有生成预期的请求正文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56364197/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com