直接上解决办法
客户端的代码
String result = new String(HTTPUtil.HttpGet("http://localhost:8090/service/external/getDeptListByOrgId/" + orgId + "/" + model.getUuid()), "UTF-8");
之前没有加编码格式 加之后完美解决。
附上 HTTPGet的代码
public static byte[] HttpGet(String url) throws ServiceException {
try {
ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
HttpClient httpClient = new HttpClient();
if (url.indexOf("http://") == -1 && url.indexOf("https://") == -1) {
url = "http://" + url;
}
URI uri = new URI(url, false, "UTF-8");
// 设置连接超时
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5 * 1000);
// 设置读取超时
httpClient.getHttpConnectionManager().getParams().setSoTimeout(20 * 1000);
GetMethod method = new GetMethod(uri.toString());
method.addRequestHeader("Content-Type", "text/html; charset=UTF-8");
method.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "utf-8");
// 设置连接超时
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5 * 1000);
// 设置读取超时
httpClient.getHttpConnectionManager().getParams().setSoTimeout(20 * 1000);
try {
int returnCode = httpClient.executeMethod(method);
if (returnCode == HttpStatus.SC_OK) {
InputStream is = method.getResponseBodyAsStream();
byte[] buff = new byte[100];
int rc = 0;
while ((rc = is.read(buff, 0, 100)) > 0) {
swapStream.write(buff, 0, rc);
}
return swapStream.toByteArray();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
method.releaseConnection();
swapStream.close();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
String类型设置编码格式
第一步:byte[] bytes=str.getBytes(“gbk”)
第二步:String s=new String(bytes,“gbk”)