Hi Olivier, Can you please test the latest Zn with your use case ? You can load ConfigurationOfZincHTTPComponents from StHub and do ConfigurationOfZincHTTPComponents project bleedingEdge load. The are the relevant commits: === Name: Zinc-Character-Encoding-Core-SvenVanCaekenberghe.22 Author: SvenVanCaekenberghe Time: 24 October 2013, 10:40:00.795063 am UUID: 3d7bc73c-48b3-40af-8c01-5ba533472a92 Ancestors: Zinc-Character-Encoding-Core-SvenVanCaekenberghe.21 Made the default safeSet of ZnPercentEncoder an explicit constant named #rfc3986UnreservedCharacters === Name: Zinc-Resource-Meta-Core-SvenVanCaekenberghe.21 Author: SvenVanCaekenberghe Time: 24 October 2013, 10:48:32.342296 am UUID: 7401fc4c-0f26-46e4-8f7d-b0bf10e8352c Ancestors: Zinc-Resource-Meta-Core-SvenVanCaekenberghe.20 Rewrote ZnUrl percent encoding to use safe sets per component; Fixed a bug in ZnUrl>>#parseAuthority:from:to: where end was not respected (Thx Olivier Auverlot); Removed/renamed ZnResourceMetaUtils class>>#encodePercent:withEncoding to #encodePercent:[safeSet:]encoding: Added some safeSet constants to ZnResourceMetaUtils === Name: Zinc-Resource-Meta-Tests-SvenVanCaekenberghe.13 Author: SvenVanCaekenberghe Time: 24 October 2013, 10:50:11.698368 am UUID: 2d73205c-3415-4597-8d98-abcff1e16259 Ancestors: Zinc-Resource-Meta-Tests-SvenVanCaekenberghe.12 Added ZnUrlTests>>#testComponentSpecificEncoding Fixed ZnUrlTests>>#testQueryEncoding Fixed ZnMimeTypeTests>>#testLegacy === It should work, let me know how it goes ;-) Sven On 24 Oct 2013, at 08:01, Olivier Auverlot <olivier.auverlot@gmail.com> wrote:
Thanks for the improvement. Don't hesitate to contact me if I can help you
Olivier ;-)
Le 22 oct. 2013 à 18:49, Sven Van Caekenberghe a écrit :
On 22 Oct 2013, at 18:27, "phil@highoctane.be" <phil@highoctane.be> wrote:
Ok, point taken.
Still, ZnClient is unusable for the intended purpose as is. No matter what encoding, % or not, Olivier cannot get the URL to work. Couldn't the ZnClient use something like the StampClient does: options? (where prefetch-count can be set for example - I also discovered the little inbox thing after some hair pulling sessions BTW).
Phil
But Olivier's problem is that he is talking to a server that does not do proper percent decoding, IMHO. A server parsing a URL should resolve all percent encodings, after parsing using the significant delimiters (/ : ? #).
http://foo.com/abc and http://foo.com/%61%62%63 are the same thing, just like http://foo.com/abc@1 and http://foo.com/abc%401 are - again as far as I understand it.
That being said, I am going to study the specs again and might change what gets encoded or not depending on the URL element, instead of encoding aggressively in the better safe than sorry way.
Olivier's suggestion about safer authorisation parsing does make sense and will get added as well - Thanks Olivier !
Sven
PS: BTW, ZnClient has such an option object already.