Re: why is ZnEasy choking on this and languages as c# and ruby not
Posted by
Sven Van Caekenberghe-2 on
Sep 27, 2020; 8:37pm
URL: https://forum.world.st/why-is-ZnEasy-choking-on-this-and-languages-as-c-and-ruby-not-tp5122546p5122567.html
> On 27 Sep 2020, at 19:34, Roelof Wobben via Pharo-users <
[hidden email]> wrote:
>
> Hello,
>
> In a project of mine I do this :
>
> (ZnEasy get: '
https://www.rijksmuseum.nl/api/nl/collection/SK-C-1368/tiles?key=14OGzuak'> ) contents .
>
> but this is given me a bytearray.
>
> When I do the same in other languages I know like c# or ruby I get a dictionary like I suspect.
>
>
> Can som one explain to me why this happens with ZnEasy.
>
> Regards,
>
> Roelof
This website/webservice has an incomplete http 1.1 fallback IMHO, as it does not set the content-type of the response - in that case the default is application/octet-stream, hence a ByteArray.
You can see this when you ask curl to use http 1.1
$ curl -v --http1.1
https://www.rijksmuseum.nl/api/nl/collection/SK-C-1368/tiles?key=14OGzuakYou will see there is no content-type in the response. Now, curl too will seemingly show you the expected text, but that is an assumption it cannot actually make (it does this in a unix tradition).
Now, since we know/expect textual JSON data (apparently), you can make the request work as follows:
(ZnEasy get: '
https://www.rijksmuseum.nl/api/nl/collection/SK-C-1368/tiles?key=14OGzuak') contents utf8Decoded.
When you have NeoJSON load, you can parse as follows:
NeoJSONObject fromString: (ZnEasy get: '
https://www.rijksmuseum.nl/api/nl/collection/SK-C-1368/tiles?key=14OGzuak') contents utf8Decoded.
Sven