先贴一段代码
/**
*
* <p>
* Description:富有充值回调中介
* </p>
* <p>
* Company:xbd
* </p>
*
* @author:lilei
* @date:2016年11月25日下午2:51:39
*/
@RequestMapping(value = "/angency/recharge")
public String rechargeAngency() {
String resp_code = request.getParameter("resp_code");
String resp_desc = request.getParameter("resp_desc");
// String mchnt_cd = request.getParameter("mchnt_cd");
// String mchnt_txn_ssn = request.getParameter("mchnt_txn_ssn");
// String login_id = request.getParameter("login_id");
// String amt = request.getParameter("amt");
// String signature = request.getParameter("signature");
String charset = "utf-8";
StringBuilder url = new StringBuilder(Config.server_url+"/wx_xbd/my-account.html");
HttpClientHelper httpclient = new HttpClientHelper();
try {
url.append("?1=1");
if (null != resp_code && StringUtils.isNotBlank(resp_code)) {
url.append("&code=" + resp_code);
}
if (null != resp_code && StringUtils.isNotBlank(resp_code)) {
// url.append("&msg=" + resp_desc);
url.append("&msg=" + URLEncoder.encode(resp_desc, "utf-8"));
}
httpclient.doGet(url.toString(), charset);
} catch (Exception e) {
System.out.println(e.getMessage());
}
return null;
}
/**
*
* <p>Description:get请求方式 </p>
* <p>Company:xbd </p>
* @author:lilei
* @date:2016年11月7日下午12:31:48
*/
public void doGet(String url, String charset) {
HttpClient httpClient = new HttpClient();
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
// 创建get实例
GetMethod getMethod = new GetMethod(url);
getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 5000);
getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
String response = "";
try {
int statusCode = httpClient.executeMethod(getMethod);
if (statusCode != HttpStatus.SC_OK) {
System.err.println("请求出错: " + getMethod.getStatusLine());
}
Header[] headers = getMethod.getResponseHeaders();
for (Header h : headers)
System.out.println(h.getName() + "------------ " + h.getValue());
byte[] responseBody = getMethod.getResponseBody();// 读取为字节数组
response = new String(responseBody, charset);
System.out.println("----------response:" + response);
} catch (HttpException e) {
System.out.println(e.getMessage());
} catch (IOException e1) {
System.out.println(e1.getMessage());
} finally {
getMethod.releaseConnection();
}
}
resp_desc 是一串中文的提示信息,,拼接URL后 发现getMethod竟然解析不了 提示invalid url 非法的url喽,,这是怎么回事啊,,原来url 里不支持有中文字符,之后通过 URLEncoder.encode() 方法转码一下,OK 了 可以正常的解析了!