@Test
public void testAuth() throws UnsupportedEncodingException {
HttpResponse response = HttpRequest
.post("http://localhost:8099/outer/index")
.queryEncoding("utf-8")
.send();
System.out.println("response==>"+response.body());
String body = response.body();
String abc = new String(body.getBytes("iso8859-1"),"utf-8");
System.out.println("response==>"+abc);
}
response==>ä¸æä½ å¥½å?
response==>中文你好吗?
推荐下面这种方式
HttpRequest httpRequest = HttpRequest.get("http://www.baidu.com/");
HttpResponse httpResponse = httpRequest.send();
String s = httpResponse.charset("utf-8").bodyText();
System.out.println(s);
请求参数中文乱码
替换 //request.body(jsonParams);
为 request.bodyText(jsonParams, "application/json", "utf-8");
/**
* 发送Post请求-json数据
*
* @param url : 请求的连接
* @param jsonParams : 请求参数,无参时传null
* @return
*/
public static String post(String url, String jsonParams, int milliseconds) {
String result =null;
HttpRequest request = HttpRequest.post(url);
request.contentType("application/json");
request.charset("utf-8");
// 参数详情
if (StringUtils.isNotEmpty(jsonParams)) {
//request.body(jsonParams);
request.bodyText(jsonParams, "application/json", "utf-8");
}
HttpResponse response = null;
try {
response = request.timeout(milliseconds).queryEncoding("utf-8").send();
result = response.body();
result = new String(result.getBytes("iso8859-1"),"utf-8");
return result;
} catch (Exception e) {
result= String.format("远程访问接口%s, 参数:%s,异常%s", url, jsonParams, e);
log.error("远程访问接口{},参数:{},异常{}", url, jsonParams, e);
}
return result;
}