在R中为curl -X POST写一个正确的API请求

问题描述 投票:0回答:1

我是这个主题的新手,之前曾回顾过几个SO答案,但仍然无法弄清楚。

尝试使用R访问API

curl -X POST "http://api.spending.gov.ua/api/rest/1.0/transactions" -H "accept: application/json" -H 
"Content-Type: application/json" -d "{ \"payers_edrpous\": [ \"string\" ], \"recipt_edrpous\": [ 
\"string\" ], \"startdate\": \"string\", \"enddate\": \"string\", \"regions\": [ 0 ]}"

我目前的阶段

library(httr)
r <- GET("http://api.spending.gov.ua/api/rest/1.0/transactions")

status_code(r)

此方法有效,我收到了200回复。但是如何编写查询以json格式获取数据呢?感谢任何提示。

r api curl httr
1个回答
1
投票

@ dcruvolo的链接很有帮助。

为了使它起作用,您需要从一些有效值开始。在问题的API链接中,有一个测试页面可以测试提交:

enter image description here

一个可以替代测试值,然后按“执行”按钮提交值。上面注释中的尝试值,足够有效,不会导致错误,但也不会返回任何有效结果。

要在R中执行POST,这是一个示例:

posting<-'{
  "payers_edrpous": [
    "00013534"
  ],
  "recipt_edrpous": [
    ""
  ],
  "startdate": "2020-03-01",
  "enddate": "2020-03-28",
  "regions": [
    0
  ]
}'

library(httr)
r <- POST("http://api.spending.gov.ua/api/rest/1.0/transactions", body=posting, 
          httr::add_headers(`accept` = 'application/json'), 
          httr::content_type('application/json')) #encode="json"
content(r)

发布是要传递的JSON正文,请根据需要进行编辑。除了“区域”(整数是整数)外,所有变量都是字符串,不确定有效范围是多少。

对不起,这是我所能做的最好的。祝你好运。

© www.soinside.com 2019 - 2024. All rights reserved.