Login  Register

Re: ZnClient and percent characters

Posted by NorbertHartl on Jun 10, 2015; 8:07pm
URL: https://forum.world.st/ZnClient-and-percent-characters-tp4831433p4831523.html

That's because the comma does not need to be escaped in the query part of the uri.

Norbert

> Am 10.06.2015 um 22:00 schrieb Jimmie Houchin <[hidden email]>:
>
> On 06/10/2015 10:32 AM, Sven Van Caekenberghe wrote:
>>> On 10 Jun 2015, at 17:24, David <[hidden email]> wrote:
>>>
>>> El Wed, 10 Jun 2015 10:14:37 -0500
>>> Jimmie Houchin <[hidden email]>
>>> escribió:
>>>> Hello,
>>>>
>>>> I am attempting to use ZnClient to request data. The request requires
>>>> a %2C (comma) delimited string as part of the query. Below is a
>>>> snippet.
>>>>
>>>> znClient
>>>>         addPath: '/v1/instruments';
>>>>         queryAt: 'fields' putAll: 'displayName%2Cinstrument%2Cpip';
>>>>         get ;
>>>>         contents)
>>>>
>>>> The string  'displayName%2Cinstrument%2Cpip'
>>>> is being converted to  'displayName%252Cinstrument%252Cpip'
>>>> which causes the request to fail.
>>>>
>>>> The query needs to be
>>>> fields=displayName%2Cinstrument%2Cpip
>>>>
>>>> I have not found how to do this correctly.
>>>> Any help greatly appreciated.
>>>>
>>>> Thanks.
>>>>
>>>> Jimmie
>>>>
>>>>
>>> Maybe a silly thing, but since %2C = , ... Did you tried already to
>>> make itself encode that? Like
>>> znClient
>>>          addPath: '/v1/instruments';
>>>          queryAt: 'fields' putAll: 'displayName,instrument,pip';
>>>          get ;
>>>          contents)
>>>
>>> I suspect it is using encoding internally, that is why % is also
>>> encoded if you try to put it.
>>>
>>> I hope that works
>> Not silly and no need to suspect, but absolutely correct !
>>
>> Sven
>
> My apologies for not having full disclosure.
>
> Pharo 4, new image, freshly installed Zinc stable version.
> Xubuntu 15.04
>
>
>
> That is what I thought would happen and what I tried first. But it is not being encoded from what I can find.
>
> Inspect this in a workspace/playground.
>
> ZnClient new
>        https;
>        host: 'google.com';
>        addPath: '/commaTest';
>        queryAt: 'fields' put: 'displayName,instrument,pip';
>        yourself
>
> View the  request / requestLine / uri.  The commas are still present in the URI.
> So I tried encoding myself and get the other error.
>
> Of course Google won't understand this and in this snippet won't receive it.
>
> And please let me know if I am doing something wrong.
>
> Any help greatly appreciated.
>
> Jimmie
>
>
>