我正在尝试访问此处找到的美国政府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
我是否尝试错误地访问它?
答案 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为您处理压缩。