`
endual
  • 浏览: 3545093 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

httpclient4

    博客分类:
  • java
 
阅读更多

/**
002  * 中国银行支付网关---银行回调的接口
003  * @svncode svn://10.210.71.10/sinapay_bank/src/java/cn/com/sina
004  * @package cn.com.sina.pay.Bank.BOC
005  * @author yuchao1@staff.sina.com.cn
006  * @date 20101014
007  * @access limited by password
008  * @reference cn.com.sina.pay.ICBC
009  *
010  */
011 import java.io.*;
012 import java.util.*;
013 import org.jdom.Document;
014 import org.jdom.Element;
015 import org.jdom.Namespace;
016 import org.jdom.JDOMException;
017 import org.jdom.input.SAXBuilder;
018 import org.xml.sax.InputSource;
019  
020 import org.apache.commons.httpclient.*;
021 import org.apache.commons.httpclient.methods.*;
022 import org.apache.commons.httpclient.methods.PostMethod;
023 import org.apache.commons.httpclient.params.HttpMethodParams;
024 /**
025  * 最简单的HTTP客户端,用来演示通过GET或者POST方式访问某个页面
026  * @author yuchao
027  */
028 public class HttpClient1{
029     public static void main(String[] args) throws IOException
030     {
031         String merchantNo = "104110053004253";
032         String orderNo = "101023416806";
033         String signData = "SDJFALSF";
034          
035         HttpClient client = new HttpClient();
036              
037             //使用POST方法
038             PostMethod postMethod = newPostMethod("https://ebspay.boc.cn/PGWPortal/QueryOrder.do");
039             /**
040              * 使用POST方式提交数据
041              */
042           NameValuePair[] orderInfo = {newNameValuePair("merchantNo",merchantNo),new NameValuePair("orderNos",orderNo),
043                   new NameValuePair("signData",signData),};
044           postMethod.setRequestBody(orderInfo);
045  
046           client.executeMethod(postMethod);
047            
048           int code = postMethod.getStatusCode(); 
049           if (code == HttpStatus.SC_OK){
050             String info = null;
051             info = new String(postMethod.getResponseBodyAsString());
052           }
053            
054           /**
055            * 打印服务器返回的状态
056            */
057           System.out.println("the post return value"+postMethod.getStatusLine());
058           /**
059            * 打印结果页面
060            */
061           String response =   newString(postMethod.getResponseBodyAsString().getBytes("UTF-8"));
062            /**
063             * 打印返回的信息
064             */
065           System.out.println("the getBytes() xml is:"+response);
066            //打印返回的信息
067          String resCode = postMethod.getResponseBodyAsString();
068          System.out.println("the is my other xml:"+resCode);
069            //释放连接
070          postMethod.releaseConnection();
071          
072       
073       
074      StringReader read = new StringReader(resCode);
075      InputSource source = new InputSource(read);
076      SAXBuilder sb = new SAXBuilder();
077       
078      try{
079         Document doc = sb.build(source);
080         Element root = doc.getRootElement();
081          
082         System.out.println("the getName is:"+root.getName());
083         List jiedian = root.getChildren();
084         //获得XML中的命名空间(XML中未定义可不写)
085         Namespace ns = root.getNamespace();
086         Element et = null;
087         List orderList = null;
088          
089         for (int i=0;i<jiedian.size();i++)
090         {
091             et = (Element)jiedian.get(i);
092              
093             if(et.getName().equals("header")){
094                 System.out.println(et.getChild("merchantNo", ns).getText());
095                 System.out.println(et.getChild("exception", ns).getText());
096             }
097              
098             if(et.getName().equals("body")){
099                 orderList = et.getChildren();
100             System.out.println(et.getChild("orderTrans", ns).getChild("orderStatus").getText());
101             }
102              
103         }
104         for (int i=0;i<orderList.size();i++)
105         {
106             et = (Element)orderList.get(i);
107              
108             if(et.getName().equals("orderTrans")){
109                 System.out.println(et.getChild("payTime", ns).getText());              
110             }
111              
112         }
113         }catch(JDOMException e){
114             e.printStackTrace();
115       }catch(IOException e){
116             e.printStackTrace();
117         }
118    }
119 }
分享到:
评论

相关推荐

    HttpClient 3.x to HttpComponents HttpClient 4.x

    随着技术的发展,从早期的HttpClient 3.x版本迁移到更新的HttpComponents HttpClient 4.x版本是一个常见的需求。这不仅仅是一个简单的升级过程,而是涉及到对API的变化、编程模型的更新以及对网络编程的更深层次理解...

    httpClient4 最新帮助文档

    最新帮助文档通常会涵盖HttpClient 4的主要功能、用法、配置、异常处理以及最佳实践。以下是对HttpClient 4的一些关键知识点的详细解释: 1. **基本概念**: - HttpClient:HttpClient是客户端HTTP服务端点的抽象...

    httpClient4jar包

    在描述中提到的“httpclient4”,指的是HttpClient 4.x系列,这是一个稳定且广泛使用的版本。 在HttpClient 4.4.1.jar中,包含了HttpClient的主要功能实现,如HTTP方法(GET, POST等)、连接管理、重定向处理、身份...

    HttpClient 4文件上传

    ### HttpClient 4 文件上传知识点详解 #### 一、概述 在Java开发中,经常会遇到需要通过HTTP协议上传文件的需求。Apache HttpClient是一个强大的客户端HTTP组件,它不仅支持HTTP协议,还能处理HTTPS请求,并提供了...

    HttpClient 4 - 文件上传

    HttpClient 4 版本引入了许多改进,使得文件上传变得更加简单和高效。在这个主题中,我们将深入探讨HttpClient 4如何实现文件上传,以及相关的核心概念和技术。 首先,我们需要了解HttpClient 4的基本用法。...

    httpclient4中文API和使用

    首先,`httpclient4中文API.pdf`是HttpClient 4.5的中文版API文档,是学习和使用HttpClient的重要参考资料。这个文档通常会包含HttpClient的类结构、接口、方法等详细信息,以及如何使用这些API来构建HTTP请求的示例...

    httpclient4之百度模拟登陆,回复与58同城自动登陆

    首先,我们来了解HttpClient4的基本用法。HttpClient4通过构建HTTP请求,设置请求头,如User-Agent(模拟浏览器标识),Cookie(用于保持登录状态)等,以及POST或GET参数,来模拟用户行为。在模拟登录过程中,我们...

    httpclient 4.X版本下载有的带源码包

    2013-11-21 15:31 292,890 httpclient-4.0.2.jar 2017-12-20 12:08 351,132 httpclient-4.1.1.jar 2012-08-03 01:45 451,595 httpclient-4.1.2-sources.jar 2012-08-03 01:44 352,254 httpclient-4.1.2.jar 2012-08-...

    httpclient4源码

    《深入剖析HTTPClient4源码》 HTTPClient4是Apache软件基金会开发的一个强大的HTTP客户端库,广泛应用于Java编程中,提供了高效、灵活且可扩展的HTTP通信能力。它支持多种HTTP协议版本,包括HTTP/1.1和部分HTTP/2...

    httpclient4 封装

    在这个“httpclient4 封装”中,我们将探讨HttpClient 4.2版本的使用,以及如何将它封装到自己的项目中。 HttpClient 4.2是Apache HttpClient系列的一个稳定版本,它支持HTTP/1.1和部分HTTP/2协议,提供了对HTTPS、...

    HttpClient4模拟登录回贴

    这篇博客“HttpClient4模拟登录回贴”显然探讨了如何利用HttpClient4库进行网络模拟登录以及在特定网站上发布帖子。HttpClient4适用于各种场景,如自动化测试、数据抓取等,它允许开发者构建复杂的HTTP交互逻辑。 ...

    HttpClient 4 官方教程中文翻译版

    ### HttpClient 4 官方教程中文翻译版知识点详解 #### 一、概述 Apache HttpClient 是一个用于Java应用程序的客户端HTTP组件。它旨在提供一个高效、最新且功能丰富的HTTP客户端编程框架,同时也支持HTTPS协议。...

    httpclient4中文教程.doc

    本教程将介绍HttpClient的基本概念和使用方法。 首先,HttpClient的核心功能是执行HTTP请求。通过创建HttpClient实例和指定的HTTP方法对象(如HttpGet、HttpPost等),可以向目标服务器发起请求并获取响应。以下是...

    最新android4 HTTPCLIENT4JAR包

    HTTPCLIENT4库的核心特性包括: 1. **请求与响应模型**:HTTPCLIENT4将HTTP请求和响应抽象为对象,使得开发者可以方便地构建和解析HTTP消息。例如,`HttpGet`和`HttpPost`类用于创建请求,而`HttpResponse`则封装了...

    (最新)HttpClient4模拟登录腾讯微博

    这篇最新的文章“HttpClient4模拟登录腾讯微博”探讨了如何利用HttpClient4实现对腾讯微博的模拟登录,这在自动化测试、数据抓取等场景中非常实用。 HttpClient4库提供了丰富的API,可以定制化地构造HTTP请求,包括...

    新浪,腾讯微博HttpClient4模拟登陆

    本文将深入探讨如何使用Java中的HttpClient4库来实现对新浪和腾讯微博的模拟登录。HttpClient4是一个强大的HTTP客户端库,它允许开发者执行HTTP请求并处理响应,非常适合进行网页交互。 首先,我们来看`Sina.java`...

Global site tag (gtag.js) - Google Analytics