| | |
| | | return "调用失败"; |
| | | } |
| | | |
| | | /** |
| | | * 对URL参数进行编码,处理中文乱码问题 |
| | | * |
| | | * @param params 参数字符串,格式:name1=value1&name2=value2 |
| | | * @param charset 编码格式 |
| | | * @return 编码后的参数字符串 |
| | | */ |
| | | private static String encodeParams(String params, String charset) { |
| | | if (StringUtils.isBlank(params)) { |
| | | return params; |
| | | } |
| | | |
| | | try { |
| | | StringBuilder encodedParams = new StringBuilder(); |
| | | String[] pairs = params.split("&"); |
| | | |
| | | for (int i = 0; i < pairs.length; i++) { |
| | | String pair = pairs[i]; |
| | | if (StringUtils.isNotBlank(pair)) { |
| | | int idx = pair.indexOf("="); |
| | | if (idx > 0) { |
| | | String key = pair.substring(0, idx); |
| | | String value = pair.substring(idx + 1); |
| | | // 对key和value都进行URL编码 |
| | | encodedParams.append(URLEncoder.encode(key, charset)) |
| | | .append("=") |
| | | .append(URLEncoder.encode(value, charset)); |
| | | } else { |
| | | // 没有等号,整个作为key |
| | | encodedParams.append(URLEncoder.encode(pair, charset)); |
| | | } |
| | | |
| | | if (i < pairs.length - 1) { |
| | | encodedParams.append("&"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return encodedParams.toString(); |
| | | } catch (UnsupportedEncodingException e) { |
| | | log.error("URL参数编码失败", e); |
| | | return params; |
| | | } |
| | | } |
| | | |
| | | } |