package com.west.test.httpclient;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import javax.servlet.ServletException;public classPostServlet extends HttpServlet {
@Overrideprotected voiddoPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
System.out.println("========httpClient_001 PostServlet start=========");
System.out.println("httpClient_001:doPost方式提交");
HttpClient httpClient= newHttpClient();
PostMethod method= newPostMethod(URLUtil.POST_CONTENT);//解决中文乱码(设置:"我方"HttpClient提交、解析所用码)
method.getParams().setContentCharset("utf-8");
String charset=method.getParams().getContentCharset();
NameValuePair name= new NameValuePair("name", "张三");
NameValuePair password= new NameValuePair("password","password:123321");
method.setRequestBody(newNameValuePair[] { name, password });
String rt= "";try{int status =httpClient.executeMethod(method);if (status ==HttpStatus.SC_OK) {
rt=method.getResponseBodyAsString();
System.out.println("httpClient_001得到:" +rt);
codeTest(rt,charset);
}
}catch(Exception e) {
e.printStackTrace();
System.out.println("网络连接失败,请联系管理员!");
}//释放HttpClient资源
method.releaseConnection();
outMessage(response, rt);
}protected voiddoGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
System.out.println("httpClient_001:doGet方式提交");
doPost(request, response);
}public voidoutMessage(HttpServletResponse response, String message) {try{//解决"界面"中文乱码(设置:"我方"提交所用码、"对方"解析所用码)
response.setContentType("text/html;charset=utf-8");
PrintWriterout =response.getWriter();out.print(message);out.close();
}catch(IOException e) {
e.printStackTrace();
}
}public voidcodeTest(String rt ,String charset) throws Exception {
System.out.println("得到的是:"+charset);byte[] btr=rt.getBytes(charset);
String rt01= new String(btr, "iso-8859-1");
System.out.println("String(btr,'iso-8859-1')转码01:" +rt01);
String rt02= new String(btr, "utf-8");
System.out.println("String(btr,'utf-8')转码02:" +rt02);
String rt03= new String(rt01.getBytes("iso-8859-1"), "utf-8");
System.out.println(rt03);
}
}