Seite 1 von 1

API Post request json

Verfasst: Sonntag 23. August 2020, 19:24
von peachli
Hallo Zusammen,

ich habe nach folgender PDF versucht einen POST oder GET Requerst abzurufen, aber leider klappt es irgendwie nicht.
Bisher habe ich folgendes versucht:

https://www.boris.nrw.de/borisfachdaten ... e_REST.pdf

Code: Alles auswählen

import requests

main_api="https://www.gis-rest.nrw.de/borisplus/orderService/getBRWbyLocation.json"
parameters = {"type":"Feature","properties":{"adresse":"bundesland:Nordrhein-Westfalen strasse:Kennedydamm haus:15 plz:40476 ort:DÜsseldorf","nutzung":"2","jahr":"2015" }}
    
r = requests.get(main_api,params=parameters)

r_dictionary= r.json()
print(r_dictionary)
Also Antwort erhalte ich lediglich die folgende Meldung:

Code: Alles auswählen

In [149]:
{'status': 400, 'msg': '(Geo)JSON is null.'}
gebe ich das Ganze als URL ein klappt es, somit gebe ich den Request höchstwahrscheinlich formal falsch ein im Code.

Vielen Dank für etwaige Antworten

Re: API Post request json

Verfasst: Sonntag 23. August 2020, 19:48
von __deets__
Die Adresse sieht sehr komisch aus. Mal abgesehen vom Schreibfehler bei Düsseldorf. Wie sieht das aus, wenn du es im Browser eingibst?

Re: API Post request json

Verfasst: Sonntag 23. August 2020, 19:57
von __deets__
Und noch ein Nachtrag: dein Titel sagt Post. Dein Code zeigt get.

Re: API Post request json

Verfasst: Sonntag 23. August 2020, 20:15
von peachli
@deets
ich habe schon versucht alle möglichen Kombinationen einzugeben. Das Problem ist, in der PDF steht, dass man es auf folgende Weise senden soll:

Code: Alles auswählen

CONTENT TO SEND: 
{
 "type":"Feature",
 "properties":
 {
 "adresse":"bundesland:Nordrhein-Westfalen plz:40476 ort:Düsseldorf
strasse:Kennedydamm haus:15",
 "jahr":"2015"
 }
Leider weiß ich nicht, wie ich das genau in dieser Form gesendet bekomme.

Ja, in der PDF werden beide Arten beschrieben, hatte ich ja auch oben im Beitrag erwähnt. Mir persönlich wäre beides recht, hauptsache die Daten werden entsprechend zurückgegeben :)

Re: API Post request json

Verfasst: Sonntag 23. August 2020, 20:49
von peachli
Und laut Tabelle bedeutet der Status 400 :

Code: Alles auswählen

Code Name Beschreibung
500 Internal Server Error Standardfehler für serverseitige Fehler.
400 Bad Request Die JSON Syntax ist nicht valide.
405 Method Not Allowed Die HTTP Methode wird nicht unterstützt.
422 Unprocessable Entity Der Eingabeparameter ist ungültig. 
Zum test habe ich die Zeilen aus der PDF 1:1 mit dem Tool Postmaster getestet, da bekomme ich auch nur die 400 zurück.

Re: API Post request json

Verfasst: Sonntag 23. August 2020, 20:56
von Sirius3
Die API scheint wohl einen POST-Request zu erwarten, mit data=deine Parameter als json.

Re: API Post request json

Verfasst: Sonntag 23. August 2020, 21:13
von peachli
Dort stand, dass beides geht, habe es aber noch einmal als Post request geschickt und das beispiel 1:1 eingefügt, jedoch, kam der Fehler "unexprected Token :" Scheinbar ist ein doppelpunkt an der Falschen stelle, oder irgendwas stimmt mit dem Beispiel in der PDF nicht?

Daten vom Post Request:

URL: : https://www.gis-rest.nrw.de/grs/rest/bo ... oords.json

Als POST gesendeter Inhalt:

Code: Alles auswählen

{
 "type":"Feature",
 "geometry":
 {
 "type":"Point",
 "coordinates":[429547,5635801]
 },
 "crs":
 {
 "type":"name",
 "properties":
 {
 "name":"EPSG:25832"
 }
 },
 "properties":
 {
 "nutzung":"4",
 "jahr":"2016"
 }
}
Ergebnis:

Code: Alles auswählen

There was an error in evaluating the Pre-request Script:  SyntaxError: Unexpected token ':'

Re: API Post request json

Verfasst: Dienstag 25. August 2020, 17:16
von peachli
...