> On 27 Sep 2020, at 19:34, Roelof Wobben via Pharo-users 
> <pharo-users@lists.pharo.org> 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=14OGzuak

You 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

Reply via email to