HttpClient Get请求中返回中文乱码问题解决
2017-06-01 19:21
507 查看
1、Get请求中中文乱码问题,在代码中修改了"utf-8"编码格式,在web.xml文件中也进行了相应的过滤"utf-8"编码格式,在tomacat中也配置了URIEncoding="UTF-8",但是在Get请求的时候,返回值依然是中文乱码。
2、被远程调用的UserCenter中的方法
3、getSelectModelBySchoolIdJSONResult方法中加上了(HttpServletResponse response)就可以防止返回值中中文乱码的问题了。
// 远程调用userCenter中的方法 String resultSemester = HttpTool.requestGet( NxConfig.getGetSelectModelBySchoolIdJSONResult() + "?" + "clsSchoolId=" + clsSchoolId, null);
public static String requestGet(String url, Map<String, String> headers) throws IOException { return requestGet(null, url, headers, DEFAULT_CHARSET, false, DEFAULT_CONNECTION_TIMEOUT, DEFAULT_SOCKET_TIMEOUT); }
public static String requestGet(SSLContext sslContext, String url, Map<String, String> headers, String charset, boolean keepAlive, int connectTimeout, int socketTimeout) throws IOException { HttpClient httpClient = null; HttpGet get = null; HttpResponse response = null; try { // create builder HttpClientBuilder httpClientBuilder = createHttpClientBuilder( sslContext, headers, connectTimeout, socketTimeout); // invoke get request get = new HttpGet(url); if (keepAlive) { get.addHeader("Connection", "Keep-Alive"); } else { get.addHeader("Connection", "close"); } logger.info("Executing get request:" + get.getURI()); httpClient = httpClientBuilder.build(); response = httpClient.execute(get); String res = EntityUtils.toString(response.getEntity(), charset); logger.debug("Response content from <" + get.getURI() + ">: " + res); return res; } finally { if (get != null) { get.abort(); } } }
2、被远程调用的UserCenter中的方法
@ResponseBody @RequestMapping("getSelectModelBySchoolIdJSONResult") public String getSelectModelBySchoolIdJSONResult(String clsSchoolId,HttpServletResponse response) { List<SelectModel> resultList = getSelectModelBySchoolId(clsSchoolId); response.setHeader("Cache-Control", "no-cache"); response.setContentType("text/json;charset=UTF-8"); response.setCharacterEncoding("UTF-8"); try { PrintWriter out = response.getWriter(); out.write(JSONObject.toJSONString(resultList)); } catch (IOException e) { e.printStackTrace(); } return null; }
@ResponseBody @RequestMapping("getSelectModelBySchoolId") public List<SelectModel> getSelectModelBySchoolId(String clsSchoolId) { return baseSemesterService.getSelectModelBySchoolId(clsSchoolId); }
3、getSelectModelBySchoolIdJSONResult方法中加上了(HttpServletResponse response)就可以防止返回值中中文乱码的问题了。
相关文章推荐
- eclipse httpGet 请求返回中文乱码的问题
- 解决c# httpClient进行PostAsync()后返回数据中文乱码问题
- HttpClient的HttpGet请求乱码问题解决
- Struts2中解决POST请求和GET请求中的中文乱码问题
- [JavaEE]Get请求URI中带的中文参数在服务端乱码问题的解决方法
- get请求传递中文,解决乱码问题
- jsp中 ajax的get请求的中文乱码问题的解决方法
- 使用filter解决get请求中文乱码问题
- SpringMVC学习系列-后记 解决GET请求时中文乱码的问题
- SpringMVC学习系列-后记 解决GET请求时中文乱码的问题
- 解决GET请求时中文乱码的问题
- httpClient中文乱码问题解决(wap提交)收藏
- 完美解决由NSURLConnection或者ASIHttpRequest返回的中文乱码问题。
- SpringMVC学习系列-后记 解决GET请求时中文乱码的问题
- get请求中的中文乱码问题的解决方法
- Get,Post请求中文乱码问题有效解决方法
- XUtils框架中HttpUtils使用Get请求时总是返回相同信息的问题解决
- httpClient中文乱码问题解决(wap提交)
- httpurlconnection post 和GET 分别传递2个参数给后台,返回JSON 解决乱码问题
- Delphi xe5 控件TIdhttp的用法post,get解决中文乱码问题