You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Kishanthan Thangarajah <ks...@gmail.com> on 2013/04/14 18:29:00 UTC

Re: Problem encoding GET parameters with '+' character

Hi Devs,

I tried to reproduce this [1] and it looks like a regression caused by [2]
for me. The fix for [2] is addressing the case when a POST request is sent
with " ", space character, and the java.util.URLEncoder encodes the
space character as "+". So when decoding the string, the
"+" character is changed with " " character by the URIEncoderDecoder#decode
method.

This is what causing the above mentioned issue, where, if a GET request
contains "+" character, it is not correctly getting served. How should we
proceed on this? IMO, we should handle both of these cases, without
breaking the functionality.

Thanks,
Kishanthan.
[1] https://issues.apache.org/jira/browse/AXIS2-5489
[2] https://issues.apache.org/jira/browse/AXIS2-4989


On Mon, Mar 4, 2013 at 1:49 AM, Miguel Ángel Francisco Fernández <
miguelafr@gmail.com> wrote:

> Hi all,
>
> Does anybody know how to solve this? a workaround or a specific
> configuration to be able to send '+' symbols in GET parameters? Thank you
> in advance.
>
> Regards
>
>
> 2013/2/14 Miguel Ángel Francisco Fernández <mi...@gmail.com>
>
>> Hello,
>>
>> I am using wsdl2java tool to generate a Java client to access a REST web
>> service described with a WSDL 2.0. I am using these options:
>>
>> <plugin>
>>     <groupId>org.apache.axis2</
>> groupId>
>>     <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
>>     <version>1.6.2</version>
>>     <configuration>
>>         <packageName>com.interoud.vodkatv.wsdl</packageName>
>>         <wsdlFile>src/main/wsdl/vodkatv.wsdl</wsdlFile>
>>         <wsdl-version>2</wsdl-version>
>>         <unwrap>true</unwrap>
>>         <wsdlVersion>2</wsdlVersion>
>>     </configuration>
>>     <executions>
>>         <execution>
>>             <goals>
>>                 <goal>wsdl2code</goal>
>>             </goals>
>>         </execution>
>>     </executions>
>> </plugin>
>>
>> The generated client works ok, except when I invoke a GET operation with
>> a parameter that contains the symbol '+'. For example, if I have an URL
>> "/get_url", and I set the parameter "param" to "x+x", the symbol "+" is not
>> encoded, and therefore it is interpreted as a space on my server ("x x").
>> If I try to send the parameter encoded, i.e., "%2B", I received "%252B" in
>> my server. Am I doing anything wrong? Thank you for your help.
>>
>> Regards
>>
>
>