一、URL 参数特殊字符说明
不管是以何种方式传递url时,如果要传递的url中包含特殊字符,如想要传递一个+,但是这个+会被url会被编码成空格,想要传递&,被url处理成分隔符。
尤其是当传递的url是经过Base64加密或者RSA加密后的,存在特殊字符时,这里的特殊字符一旦被url处理,就不是原先你加密的结果了。
二、URL 特殊参数产生的问题,如下
定义方法
访问,传入 + 参数变为了空格。
解决办法:
将+变为对应的编码 %2B
三、URL特殊符号及对应的编码:
四、RPC调用,特殊字符转码
URLEncoder.encode 将特殊字符转译
URLDecoder.decode 将转译的特殊字符还原
String encode = URLEncoder.encode("1+1", "UTF-8");
String decode = URLDecoder.decode(encode, "UTF-8");
使用如下:
String url = "http://127.0.0.1:8080/tranIndex?";
// 参数转码
String strParam = "name=" + URLEncoder.encode("1+1", "utf-8");
String newUrl = url + strParam;
// 请求接口
String result = HttpClientUtils.httpGet(newUrl);
System.out.println("result:" + result);