(一)使用apache的commons-httpclient-3.1.jar之通过Java实现发起HTTP请求【不需要代理】

    声明:这是本人第一篇的博客,无论是排版还是内容都有不完善的地方还请见谅,本人以后会养成写技术博客的习惯,希望大家共同进步!!!

    我们在访问一个网站的时候请求多数是HTTP或HTTPS,在Java EE项目中,最简单的Servlet中就有内置的方法可以发起HTTP请求。但是在一个纯后台的系统中也需要发起HTTP请求时该怎么办呢,我在实际项目中就遇到了这样的问题。现在开始说明,如何通过Java实现发起HTTP请求。

    1.准备需要的Jar包

        实现HTTP功能的方法都在commons-httpclient-3.1.jar中,但还需要commons-logging-1.1.1.jar跟commons-codec-1.3.jar配合使用才可以,另外由于收到的响应信息是JSON格式的,我又引入json-rpc-1.0.jar用来专门解析JSON格式的字符串。

    2.开始编码

        2.1创建HTTPClient对象

            HttpClient client=new HttpClient();

        2.2设置目标主机、端口号、协议类型

            client.getHostConfiguration().setHost("xxx.xxx.xxx.xxx", 9800, "http");

            说明:setHost(String host,int port,String protocol)也支持HTTPS协议。

        2.3组装URL生成HttpMethod对象

            String url="/ysInterfaceServe/flowRecharge_v1.cgi?terminalID=20145021&factoryID=0000"+
"&reqDateTime=20170331135552&sign=814dd8551762e60e706c9e0b03746419"+
"&requestMsg=eyJ0ZXJtVHJhbnNJRCI6IjIwMTcwNjE1MDgxODAwMDAifQ%3d%3d";

    HttpMethod method = new GetMethod(url);

        2.4发起HTTP请求

            client.executeMethod(method);

        2.5获取HTTP请求的响应信息

            String response = method.getResponseBodyAsString();

        2.6通过JSONObject对象解析HTTP的响应信息

            JSONObject json=new JSONObject(response);

    System.out.println("key: status"+" "+"values:"+json.getString("status"));

            要想从JSONObject 对象中获取所有key通过迭代器完成:

                Iterator<String> keys=json.keys();
while(keys.hasNext()){
System.out.println("key:"+keys.next());

}

            JSONObject 后面我再做简单的介绍。

       2.7释放HTTP请求

            method.releaseConnection();

   至此,一个简单的纯Java实现HTTP请求的过程就完成了。我所做的项目是银行项目,我们的应用在网络内联区,因此无法访问到外网,需要通过代理的形式才能访问外网,因此本教程就无法实现这个需求了,下一篇的内容就给大家介绍在如果通过代理发起HTTP请求的Java实现。

  最后附上样例代码的截图。。。。




  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值