请求乱码
import org.apache.commons.httpclient.methods.PostMethod;
public class HebabyPost extends PostMethod{
public HebabyPost(String url) {
super(url);
}
@Override
public String getRequestCharSet() {
return "UTF-8";
}
}
响应乱码
经验:1,如果中文返回出现??字符,这表明没有加response.setCharacterEncoding("UTF-8");这句话。
2,如果返回的中文是“烇湫”这种乱码,说明浏览器的解析问题,应该检查下是否忘加response.setHeader("Content-type", "text/html;charset=UTF-8");这句话。
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
InputStream requestInputStream = request.getInputStream();
String requestJson = IOUtils.toString(requestInputStream, "UTF-8");
System.out.println("HttpServer.doPost requestJson:[" + requestJson + "]");
response.setHeader("Content-type", "application/json;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
//String result = "{\"error_code\":0,\"return_code\":1,\"error_msg\":\"添加成功\"}";
String result = "lBpZgm5bnZQRnYZFbHzi+mkkR0Wtg026OixCWAnR0vtxk5F4NXOoZYdrvRa2 72P6h6L8lOG07Ug=";
response.getWriter().append(result);
}