2016-12-11 1 views
0

Ich versuche, eine US-Regierung API hier zugreifen, aber eine 500-Fehlerreaktion bin immer:Wie kann ich richtig auf diese Regierungs-API zugreifen?

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

Ein Beispiel aufgeführten API-Endpunkt ist:

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

Hier ist, wie ich versuchte, um es mit curl zu testen:

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 

Ich versuche, falsch darauf zuzugreifen?

Antwort

0

Sie verwenden HTTP POST, Sie müssen eine HTTP GET Anfrage ausgeben. Sie können dies tun, indem Sie einfach die Adresse als curl agrument Kopieren:

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 

Oder durch -G mit which'll curl zwingen HTTP GET verwenden und das -d Argument als HTTP-GET-Abfrage-String (zB ?a=1&b=2) analysieren anstelle eines POST-Formulars. (In der Regel -d sagt Locke das Argument in einem HTTP-POST-Formular senden)

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 

können Sie fügen --compressed so dass curl für Sie Komprimierung behandeln.

Verwandte Themen