Fout bij ophalen gegevens

We zijn zojuist overgegaan naar de nieuwe locatieserver en krijgen een vreemd bericht terug

Deze URL werkt wel in de browser
https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?fq=postcode%3A4153RD&fq=huis_nlt:2

Maar geeft een vreemd bericht terug in onze applicatie

{“error”:{“metadata”:[“error-class”,“org.apache.solr.common.SolrException”,“root-error-class”,“org.apache.solr.common.SolrException”],“msg”:“Expected JSON Object but got String=”,“code”:400}}

Enig idee waar het probleem ligt?

Beste John,

Aangezien het in de browser wel werkt is er zeer waarschijnlijk een verschil in de wijze waarop de locatieserver vanuit jullie applicatie wordt aangeroepen. Ik denk raadzaam om dat te dubbelchecken. Mogelijk kunt u iets meer details geven over de exacte aanroep vanuit jullie applicatie?

Hoi Richard,

bericht voor je bericht. We hebben aan onze applicatie niks gewijzigd, enkel de URL

http://geodata.nationaalgeoregister.nl/locatieserver/free?fq=postcode:4153RD&fq=huis_nlt:2
is nu
https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?fq=postcode:4153RD&fq=huis_nlt:2

En dan krijgen we nu dus die fout. IK ga er maar even vanuit dat er aan de kant van PDOK niks is gewijzigd wat ik misschien heb gemist in de documentatie?

Helaas is onze technisch specialist momenteel met vakantie, ik kan momenteel niet verder uitzoeken hoe de aanroep technisch in elkaar zit.

Mvg John

Hoi @rkettelerij

ik heb denk ik het probleem gevonden: de request header moest aangepast worden

Ouid
{“Content-Type”:“application/json”,“Accept”:“application/json”}

nNieuw
{“accept”:“application/json”}

Eea werkt nu weer

Mvg John

1 like

Beste John,

Fijn dat het nu weer werkt en bedankt voor het melden van de oplossing, dat helpt anderen weer!

Wat achtergrond: Ik begrijp ergens wel dat de locatieserver een foutief response (code 400) kan geven als er in een GET request zowel een Accept header als een Content-Type header wordt meegegeven. In een GET request zou alleen een Accept header aanwezig moeten zijn (zoals je nu ook terecht doet). In het response op een GET request is vervolgens het Content-Type header aanwezig. Bij POST/PUT werkt het anders dan kan je wel een Content-Type zetten aangezien je dan data opstuurt naar de server. Maar dat speelt niet bij de locatieserver.

Nogmaals bedankt voor het melden van de oplossing.

1 like