原地址:http://blog.csdn.net/a102111/article/details/40978541
最近在搞http相关的处理,碰到一个URLEncode的问题,简单记录下,供后期查找。
发送给服务端的请求中的参数值,如果含有特殊符号,需要是做URLEncode,服务端才可以正常解析,否则可能会出错。
URLEncode主要是把一些特殊字符转换成转移字符,比如:&要转换成&这样的。
如果不转换,可能会在运行时直接报错。
如果全部转换,也会报错,因为会把其中非参数的部分也给转换了。
所以要确保只有参数部分被转换。
转换方式:
- public static String toURLEncoded(String paramString) {
- if (paramString == null || paramString.equals("")) {
- LogD("toURLEncoded error:"+paramString);
- return "";
- }
-
- try
- {
- String str = new String(paramString.getBytes(), "UTF-8");
- str = URLEncoder.encode(str, "UTF-8");
- return str;
- }
- catch (Exception localException)
- {
- LogE("toURLEncoded error:"+paramString, localException);
- }
-
- return "";
- }
返回的参数的转换:
- public static String toURLDecoded(String paramString) {
- if (paramString == null || paramString.equals("")) {
- LogD("toURLDecoded error:"+paramString);
- return "";
- }
-
- try
- {
- String str = new String(paramString.getBytes(), "UTF-8");
- str = URLDecoder.decode(str, "UTF-8");
- return str;
- }
- catch (Exception localException)
- {
- LogE("toURLDecoded error:"+paramString, localException);
- }
-
- return "";
- }