使用HttpClient发送GET、POST请求

本文介绍如何使用Commons-httpclient库简化HTTP客户端编程,包括GET和POST请求的发送及参数提交,并提供示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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("http://localhost:8888/abc/a.jsp"); 
  10. //使用POST方法
  11. //HttpMethod method = new PostMethod("http://localhost:8888/abc/a.jsp"); 
  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后面用问号与页面地址隔开,每个参数用&隔开, 例如: http://localhost:8888/abc/a.jsp?name=yeeku ,但是当使用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. }
复制代码
在上面的例子中页面 http://localhost:8888/abc/a.jsp 需要一个参数是book,这个参数值为疯狂Java讲义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值