HttpClient的简单使用

来源:互联网 发布:淘宝天猫国际是正品吗 编辑:程序博客网 时间:2024/04/30 02:51

    因为项目的原因,使用到了HttpClient这个Apache又一个好用的包,这里就简单的介绍下它的使用吧。

    使用场景

            因为项目中有一功能是需要和另一个系统进行数据交换的,一开始就考虑采用HttpUrlConnection连接远程地址,发送流实现数据交换。后来发现了HttpClient,也就赖的再写一些连接的函数了,所以就“拿来主义”了!

    安装:

            HttpClient的使用需要三个包,分别是commons-httpclient-3.1.jar、commons-logging-1.0.4.jar、commons-codec-1.3.jar,都可以在Apache的官网上下载。

    使用:

            我们知道,HTTP协议的连接方法有GET、POST、PUT和HEAD方式,在创建Method实例的时候可以更具具体的方法来创建。HttpClient的使用一般分如下几步:

            1、创建HttpClient实例。

            2、创建具体连接方法的实例。如POST方法创建PostMethod的实例,在实例化时从构造函数中传入待连接的URL地址。

            3、对post的发送内容等信息进行配置

            4、执行HttpClient的execute方法

            5、如果返回的状态码正常,表明连接成功,可以读取response的内容

  1. //将创建的xml生成String类型等待发送
  2. String strxml = CreateXML.creteCustomerXml(list);
  3. //创建post发法的实例
  4.         PostMethod post = new PostMethod(
  5.             "http://127.0.0.1:8088/CustomerReceive");
  6.         // 使用系统提供的默认的恢复策略
  7.         post.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
  8.                 new DefaultHttpMethodRetryHandler());
  9. //设置发送的内容       
  10. post.setRequestBody(strxml);
  11. //对发送的内容长度进行设定
  12.         if (strxml.length() < Integer.MAX_VALUE) {
  13.             post.setRequestContentLength(strxml.length());
  14.         }
  15.         else {
  16.             post
  17.                     .setRequestContentLength(EntityEnclosingMethod.CONTENT_LENGTH_CHUNKED);
  18.         }
  19.         // 指定请求内容的类型
  20.         post.setRequestHeader("Content-type""text/xml; charset=utf-8");
  21. //创建HttpClient 实例
  22.         HttpClient httpclient = new HttpClient();
  23.         int result;
  24.         try {
  25. //执行post方法
  26.             result = httpclient.executeMethod(post);
  27. //如果连接正常,获得返回内容         
  28.             if (result == HttpStatus.SC_OK) {
  29.                 InputStream input = post.getResponseBodyAsStream();
  30.                 SAXReader readers = new SAXReader();
  31.                 try {
  32.                     Document document = readers.read(input);
  33.                     System.out.println(document.asXML());
  34.                 } catch (DocumentException e) {
  35.                     // TODO Auto-generated catch block
  36.                     e.printStackTrace();
  37.                 }
  38.             }
  39.         } catch (HttpException e) {
  40.             // TODO Auto-generated catch block
  41.             e.printStackTrace();
  42.         } catch (IOException e) {
  43.             // TODO Auto-generated catch block
  44.             e.printStackTrace();
  45.         } finally {
  46.             post.releaseConnection();
  47.         }
  48.     }

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吃鸡游戏上瘾了怎么办 使命召唤7很卡怎么办 w10升级系统卡死怎么办 答题卡写错位置怎么办 高考答错区域该怎么办 荒野行动画面中间有条横怎么办 荒野行动pc闪退怎么办 幽灵行动荒野子弹没了怎么办 看门狗2枪没子弹怎么办 爱奇艺不小心删除了本地视频怎么办 80岁老太太就爱闹肚子怎么办? 皇牌空战5弹药不够怎么办 辐射4玩着头晕怎么办 官司打赢了法院不给钱怎么办 电脑玩dnf太卡怎么办 soul被禁止私聊怎么办 刺激战场空投挂树上怎么办 由于经济原因心态不好怎么办 公司经济不好不裁员怎么办 家里经济不好没有钱怎么办 银行柜员找不到工作怎么办 在球队中打替补怎么办 大学生毕业后找不到工作怎么办 30岁不敢换工作怎么办 投完简历没回复怎么办 工业废气一年总量超标怎么办 安监局行政处罚没能力交怎么办 被社会淘汰的人怎么办 宝宝吐奶的时候怎么办 网友要我发红包怎么办 电脑久了很慢怎么办 影驰显卡花屏怎么办 反恐精英全球攻势加载地图慢怎么办 老滚5视角锁死了怎么办 苹果描述文件没有了怎么办 苹果6s发热严重怎么办 苹果6s发烫严重怎么办 手机型号不适配全军出击怎么办? 苹果5版本过低怎么办 在泰国买到假货怎么办 在泰国旅游遇到危险该怎么办?