[erlang-questions] Inets unencoding question
Thu Oct 26 10:03:27 CEST 2006
The implementation of the http_uri module has always been a mystery to
me. It is probably wrong. That is why I wrote a new one when I was
going to fix the problem that it did not handle URIs with ipv6
addresses. The new version will be part of the next open source release.
When I try to test the old module however it seems
that % becomes %25 not the other way around. Regardless if
you could send an exampel of an uri that you think is handle
incorrectly I will add it to our test cases of this module.
>I'm using http:request and it calls http_uri:parse_http.
>Http_uri:parse_http seems to unencode the request as part of its parsing.
>I.e. %25 becomes %. Unfortunately, the web service I'm calling requires a
>digital signature with the request, so the request no longer matches the
>I'm not sure of the reasoning behind this, and I'm certainly open to
>discussion to the contrary, but this seems like a bug. I've tried this
>request in other http clients (Perl, Java) and neither performs an unencode.
> Also, this particular implementation seems to violate the RFC whereby
>multiple unencoding is not allowed as it may alter the intent of the URI
>(the http_uri:parse_http unencoding is recursing on the unencoded portion).
>Given my very light Erlang skills it's entirely possible I'm
>mis-interpreting the processing but my tests seem to bear this out. Can
>anyone confirm or deny? Or suggest a means of turning this off? Or explain
>why this is correct?
Ericsson AB - OTP team
More information about the erlang-questions