Hi Rémy, Could you please provide us with a minimized example of your http:send-request call? The arguments can have dummy values.
Thanks, Christian On Tue, Dec 17, 2024 at 2:22 PM Rémy Delanaux <[email protected]> wrote: > Dear Christian and Nico, > > To follow-up on that JSON issue: I think I'm having some trouble with that > one. > > As Nico suggested, I directly switched my serialization to put the map > variable as parameter to 'http:send-request' (a map previously created > with map:merge in my code). > > But I have the following errors: > * When I don't serialize and directly send the map, I get an "*Atomic > item required, function item found*" error at request time. > * When I *do* serialize it, like I did (with success) in BaseX 9, I get > an "*Invalid json message received*" error at request time. > The API I query hasn't changed since my BaseX update, and that code was > working fine before, so the data I send most likely isn't the problem here. > I tried printing the map that is sent/serialized and it's perfectly valid > JSON. > > How can I solve this problem? > > Thanks > > Remy > > > > > Le mer. 20 nov. 2024 à 09:14, Christian Grün <[email protected]> > a écrit : > >> Thanks for pointing this out, Nico. This one should have been documented >> indeed, or changed with the next major release. >> >> >> >> Nico Verwer (Rakensi) <[email protected]> schrieb am Mi., 20. Nov. >> 2024, 08:46: >> >>> Dear Rémy, >>> >>> A particular change in BaseX 11.4 that took me a while to find, is a >>> change in http:send-request. So this is only relevant if you use that >>> function. >>> If you send a JSON body, previously you had to serialize it, like: >>> >>> http:send-request( >>> <http:request method='put'> >>> <http:body media-type='application/json'/> >>> </http:request>, >>> $url, >>> serialize($body-map, map{'method':'json'}) >>> ) >>> >>> This has changed, and the right way to call this is now: >>> >>> http:send-request( >>> <http:request method='put'> >>> <http:body media-type='application/json'/> >>> </http:request>, >>> $url, >>> $body-map >>> ) >>> >>> If you use http:send-request, I hope this will save you a bit of time. >>> >>> Best regards, >>> Nico Verwer >>> >>

