一、HttpClient介绍

HttpClient是用来模拟HTTP请求的,其实实质就是把HTTP请求模拟后发给Web服务器;Android已经集成了HttpClient,因此可以直接使用;

注:此处HttpClient代码不只可以适用于Android,也可适用于一般的Java程序;

HTTP GET核心代码:

(1)DefaultHttpClient client = new DefaultHttpClient();

(2)HttpGet get = new HttpGet(String url);//此处的URL为http://..../path?arg1=value&....argn=value

(3)HttpResponse response = client.execute(get); //模拟请求

(4)int code = response.getStatusLine().getStatusCode();//返回响应码

(5)InputStream in = response.getEntity().getContent();//服务器返回的数据

HTTP POST核心代码:

(1)DefaultHttpClient client = new DefaultHttpClient();

(2)BasicNameValuePair pair = new BasicNameValuePair(String name,String value);//创建一个请求头的字段,比如content-type,text/plain

(3)UrlEncodedFormEntity entity = new UrlEncodedFormEntity(List list,String encoding);//对自定义请求头进行URL编码

(4)HttpPost post = new HttpPost(String url);//此处的URL为http://..../path

(5)post.setEntity(entity);

(6)HttpResponse response = client.execute(post);

(7)int code = response.getStatusLine().getStatusCode();

(8)InputStream in = response.getEntity().getContent();//服务器返回的数据

二、服务器端代码

服务器端代码和通过URLConnection发出请求的代码不变:

packageorg.xiazdong.servlet;

importjava.io.IOException;

importjava.io.OutputStream;

importjavax.servlet.ServletException;

importjavax.servlet.annotation.WebServlet;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

@WebServlet("/Servlet1")

publicclassServlet1extendsHttpServlet {

protectedvoiddoGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {

String nameParameter = request.getParameter("name");

String ageParameter = request.getParameter("age");

String name =newString(nameParameter.getBytes("ISO-8859-1"),"UTF-8");

String age =newString(ageParameter.getBytes("ISO-8859-1"),"UTF-8");

System.out.println("GET");

System.out.println("name="+name);

System.out.println("age="+age);

response.setCharacterEncoding("UTF-8");

OutputStream out = response.getOutputStream();//返回数据

out.write("GET请求成功!".getBytes("UTF-8"));

out.close();

}

protectedvoiddoPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {

request.setCharacterEncoding("UTF-8");

String name = request.getParameter("name");

String age  = request.getParameter("age");

System.out.println("POST");

System.out.println("name="+name);

System.out.println("age="+age);

response.setCharacterEncoding("UTF-8");

OutputStream out = response.getOutputStream();

out.write("POST请求成功!".getBytes("UTF-8"));

out.close();

}

}0b1331709591d260c1c78e86d0c51c18.png

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐