Chinaunix首页 | 论坛 | 博客
  • 博客访问: 240046
  • 博文数量: 22
  • 博客积分: 512
  • 博客等级: 下士
  • 技术积分: 242
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-17 09:48
文章分类

全部博文(22)

文章存档

2013年(1)

2012年(21)

我的朋友

分类: Java

2012-07-14 06:19:56

Commons-httpclient项目就是专门设计来简化HTTP客户端与服务器进行各种通讯编程,
使用极为简单。一个字:爽!
1. 读取网页(HTTP/HTTPS)内容
下面给出的一个简单的例子用来访问某个页面

  1. public class SimpleClient
  2. {
  3. public static void main(String[] args) throws IOException
  4. {
  5. HttpClient client = new HttpClient();
  6. //设置代理服务器地址和端口
  7. //client.getHostConfiguration().setProxy("proxy_host_addr",proxy_port);
  8. //使用GET方法,如果服务器需要通过HTTPS连接,那只需要将下面URL中的http换成https
  9. HttpMethod method = new GetMethod("");
  10. //使用POST方法
  11. //HttpMethod method = new PostMethod("");
  12. client.executeMethod(method);
  13. //打印服务器返回的状态
  14. System.out.println(method.getStatusLine());
  15. //打印返回的信息
  16. System.out.println(method.getResponseBodyAsString());
  17. //释放连接
  18. method.releaseConnection();
  19. }
  20. }
复制代码
在这个例子中首先创建一个HTTP客户端(HttpClient)的实例,然后选择提交的方法是GET或者 POST,最后在HttpClient实例上执行提交的方法,最后从所选择的提交方法中读取服务器反馈回来的结果。这就是使用HttpClient的基本 流程。其实用一行代码也就可以搞定整个请求的过程,非常的简单!

2. 以GET或者POST方式向网页提交参数
其实前面一个最简单的示例中我们已经介绍了如何使用GET或者POST方式来请求一个页面,本小节与之不同的是多了 提交时设定页面所需的参数,我们知道如果是GET的请求方式,那么所有参数都直接放到页面的URL后面用问号与页面地址隔开,每个参数用&隔开, 例如:,但是当使用POST方法时就会稍微有一点点麻烦。代码如下:

  1. public class SimpleHttpClient
  2. {
  3. public static void main(String[] args) throws IOException
  4. {
  5. HttpClient client = new HttpClient();
  6. client.getHostConfiguration().setHost("localhost:8888/abc", 80, "http");
  7. HttpMethod method = getPostMethod();//使用POST方式提交数据
  8. client.executeMethod(method);
  9. //打印服务器返回的状态
  10. System.out.println(method.getStatusLine());
  11. //打印结果页面
  12. String response =
  13. new String(method.getResponseBodyAsString().getBytes("8859_1"));
  14. //打印返回的信息
  15. System.out.println(response);
  16. method.releaseConnection();
  17. }
  18. /**
  19. * 使用GET方式提交数据
  20. * @return
  21. */
  22. private static HttpMethod getGetMethod(){
  23. return new GetMethod("/a.jsp?name=yeeku");
  24. }
  25. /**
  26. * 使用POST方式提交数据
  27. * @return
  28. */
  29. private static HttpMethod getPostMethod(){
  30. PostMethod post = new PostMethod("/a.jsp");
  31. NameValuePair simcard = new NameValuePair("book","疯狂Java讲义");
  32. post.setRequestBody(new NameValuePair[] { simcard});
  33. return post;
  34. }
  35. }
复制代码
在上面的例子中页面需要一个参数是book,这个参数值为疯狂Java讲义。
阅读(21157) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~