API Post request json

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
peachli
User
Beiträge: 18
Registriert: Dienstag 13. März 2018, 20:21

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
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Die Adresse sieht sehr komisch aus. Mal abgesehen vom Schreibfehler bei Düsseldorf. Wie sieht das aus, wenn du es im Browser eingibst?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Und noch ein Nachtrag: dein Titel sagt Post. Dein Code zeigt get.
peachli
User
Beiträge: 18
Registriert: Dienstag 13. März 2018, 20:21

@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 :)
peachli
User
Beiträge: 18
Registriert: Dienstag 13. März 2018, 20:21

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.
Sirius3
User
Beiträge: 18255
Registriert: Sonntag 21. Oktober 2012, 17:20

Die API scheint wohl einen POST-Request zu erwarten, mit data=deine Parameter als json.
peachli
User
Beiträge: 18
Registriert: Dienstag 13. März 2018, 20:21

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 ':'
peachli
User
Beiträge: 18
Registriert: Dienstag 13. März 2018, 20:21

...
Antworten