1、客服端:
其中 utils.java代码如下:
package com.zwh.httpclient;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;public class Utils { public Utils() { // TODO Auto-generated constructor stub } /** * * @param path * @param map * @param encode * @return */ public static String sendHttpClientPost(String path, Mapmap, String encode) { List list=new ArrayList (); for(Map.Entry entry:map.entrySet()){ list.add(new BasicNameValuePair(entry.getKey(),entry.getValue())); } try { //实现将请求中的参数封装到请求参数中,请求体中 UrlEncodedFormEntity entity=new UrlEncodedFormEntity(list,encode); //使用post方式提交 HttpPost httpPost=new HttpPost(path); httpPost.setEntity(entity); //指定post方式提交数据 DefaultHttpClient client =new DefaultHttpClient(); HttpResponse httpResponse=client.execute(httpPost); if(httpResponse.getStatusLine().getStatusCode()==200){ return changeInputStream(httpResponse.getEntity().getContent(),encode); } } catch (Exception e) { // TODO: handle exception } return ""; } /** * * @param inputStream * @param encode * @return */ private static String changeInputStream(InputStream inputStream, String encode) { // TODO Auto-generated method stub ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); int len = 0; byte[] date = new byte[1024]; String result = ""; try { while ((len = inputStream.read(date)) != -1) { outputStream.write(date, 0, len); } result = new String(outputStream.toByteArray(), encode); return result; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } public static void main(String[] args) { String path="http://localhost:8080/httppost/LoginServlet"; Map params = new HashMap (); params.put("username", "admin"); params.put("password", "123"); String result=Utils.sendHttpClientPost(path, params, "utf-8"); System.out.println(result); }}
2、服务器端代码如下:
package com.zwh.http;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class LoginServlet extends HttpServlet { public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request,response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); response.setCharacterEncoding("utf-8"); request.setCharacterEncoding("utf-8"); PrintWriter out=response.getWriter(); String username=request.getParameter("username"); String password=request.getParameter("password"); System.out.println("---->username:"+username); System.out.println("---->password:"+password); if(username.equals("admin")&&password.equals("123")){ out.println("login is success ! "); }else{ out.println("login is failure ! "); } out.flush(); out.close(); } public void init() throws ServletException { // Put your code here }}
客服端执行结果为:
login is success !