You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Miguel Ángel Francisco Fernández <mi...@gmail.com> on 2013/03/03 21:19:40 UTC
Re: Problem encoding GET parameters with '+' character
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
>
Re: Problem encoding GET parameters with '+' character
Posted by Kishanthan Thangarajah <ks...@gmail.com>.
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
>>
>
>