解决HttpClient的PostMethod的中文乱码问题
问题场景:
解决代码:
请求时设定编码格式:
post.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "utf-8");
完整代码:
/*** 封装请求参数,并发送请求* * @param record* @return*/public String sendPost(Record record) {try {HttpClient httpclient = new HttpClient();PostMethod post = new PostMethod(record.getStr("url"));//解决中文乱码问题post.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "utf-8");// 设置调用接口的参数信息post.addParameter("servercode", record.getStr("serverCode"));post.addParameter("time", record.getStr("time"));post.addParameter("sign", record.getStr("sign"));post.addParameter("srcnum", record.getStr("srcnum"));post.addParameter("desttype", record.getStr("desttype"));post.addParameter("dest", record.getStr("dest"));post.addParameter("message", record.getStr("message"));post.addParameter("messageid", record.getStr("messageid"));post.addParameter("method", "send");httpclient.executeMethod(post);String result = new String(post.getResponseBody(), "utf-8");logger.info("服务端返回结果:" + result);return result;}catch (Exception e) {e.printStackTrace();logger.info("发送请求异常信息:" + e.getMessage() + "=======");return "-1";}}