如何正确访问此政府API?

时间:2016-12-11 11:45:11

标签: api

我正在尝试访问此处找到的美国政府API,但我收到了500错误回复:

https://gsa.gov/portal/content/162379

列出的API端点示例如下:

https://inventory.data.gov/api/action/datastore_search?resource_id=8ea44bc4-22ba-4386-b84c-1494ab28964b&filters={"FiscalYear":"2017","Zip":"10036"}

以下是我尝试使用curl进行测试的方法:

curl -H "Content-Type: application/json" -X POST -d '{"FiscalYear":"2017","County":"Worcester"}' https://inventory.data.gov/api/action/datastore_search?resource_id=8ea44bc4-22ba-4386-b84c-1494ab28964b

我是否尝试错误地访问它?

1 个答案:

答案 0 :(得分:0)

您正在使用HTTP POST,您需要发出 HTTP GET 请求。 你可以通过将地址复制为curl agrument来实现这一点:

curl 'https://inventory.data.gov/api/action/datastore_search?resource_id=8ea44bc4-22ba-4386-b84c-1494ab28964b&filters=\{%22FiscalYear%22:%222017%22,%22Zip%22:%2210036%22\}' --compressed

或者使用-G强制curl使用HTTP GET并将-d参数解析为HTTP GET查询字符串(例如?a=1&b=2)而不是POST表单。 (通常-d告诉curl以HTTP POST形式发送参数)

curl -G -d resource_id=8ea44bc4-22ba-4386-b84c-1494ab28964b -d filters='{"FiscalYear":2017,"Zip":10036}' https://inventory.data.gov/api/action/datastore_search --compressed

您可以添加--compressed以便curl为您处理压缩。