• HttpClient通过GET和POST获取网页内容


    中国银行支付网关---银行回调的接口

    最简单的HTTP客户端,用来演示通过GET或者POST方式访问某个页面

    /**
     * 中国银行支付网关---银行回调的接口
     * @svncode svn://10.210.71.10/sinapay_bank/src/java/cn/com/sina
     * @package cn.com.sina.pay.Bank.BOC
     * @author yuchao1@staff.sina.com.cn
     * @date 20101014
     * @access limited by password
     * @reference cn.com.sina.pay.ICBC
     * 
     */
    import java.io.*;
    import java.util.*;
    import org.jdom.Document;
    import org.jdom.Element;
    import org.jdom.Namespace;
    import org.jdom.JDOMException;
    import org.jdom.input.SAXBuilder;
    import org.xml.sax.InputSource;
     
    import org.apache.commons.httpclient.*;
    import org.apache.commons.httpclient.methods.*;
    import org.apache.commons.httpclient.methods.PostMethod;
    import org.apache.commons.httpclient.params.HttpMethodParams;
    /**
     * 最简单的HTTP客户端,用来演示通过GET或者POST方式访问某个页面
     * @author yuchao
     */
    public class HttpClient1{
        public static void main(String[] args) throws IOException
        {
            String merchantNo = "104110053004253";
            String orderNo = "101023416806";
            String signData = "SDJFALSF";
             
            HttpClient client = new HttpClient();
                 
                //使用POST方法
                PostMethod postMethod = new PostMethod("https://ebspay.boc.cn/PGWPortal/QueryOrder.do");
                /**
                 * 使用POST方式提交数据
                 */
              NameValuePair[] orderInfo = {new NameValuePair("merchantNo",merchantNo),new NameValuePair("orderNos",orderNo),
                      new NameValuePair("signData",signData),};
              postMethod.setRequestBody(orderInfo);
     
              client.executeMethod(postMethod);
               
              int code = postMethod.getStatusCode();  
              if (code == HttpStatus.SC_OK){
                String info = null;
                info = new String(postMethod.getResponseBodyAsString());
              }
               
              /**
               * 打印服务器返回的状态
               */
              System.out.println("the post return value"+postMethod.getStatusLine());
              /**
               * 打印结果页面
               */
              String response =   new String(postMethod.getResponseBodyAsString().getBytes("UTF-8"));
               /**
                * 打印返回的信息
                */
              System.out.println("the getBytes() xml is:"+response);
               //打印返回的信息
             String resCode = postMethod.getResponseBodyAsString();
             System.out.println("the is my other xml:"+resCode);
               //释放连接
             postMethod.releaseConnection();
             
          
          
         StringReader read = new StringReader(resCode);
         InputSource source = new InputSource(read);
         SAXBuilder sb = new SAXBuilder();
          
         try{
            Document doc = sb.build(source);
            Element root = doc.getRootElement();
             
            System.out.println("the getName is:"+root.getName());
            List jiedian = root.getChildren();
            //获得XML中的命名空间(XML中未定义可不写)
            Namespace ns = root.getNamespace();
            Element et = null;
            List orderList = null;
             
            for (int i=0;i<jiedian.size();i++)
            {
                et = (Element)jiedian.get(i);
                 
                if(et.getName().equals("header")){
                    System.out.println(et.getChild("merchantNo", ns).getText());
                    System.out.println(et.getChild("exception", ns).getText());
                }
                 
                if(et.getName().equals("body")){
                    orderList = et.getChildren();
                System.out.println(et.getChild("orderTrans", ns).getChild("orderStatus").getText());
                }
                 
            }
            for (int i=0;i<orderList.size();i++)
            {
                et = (Element)orderList.get(i);
                 
                if(et.getName().equals("orderTrans")){
                    System.out.println(et.getChild("payTime", ns).getText());               
                }
                 
            }
            }catch(JDOMException e){
                e.printStackTrace();
          }catch(IOException e){
                e.printStackTrace();
            }
       }
    }
    

      

  • 相关阅读:
    计算机网络——TCP如何做到可靠数据传输
    计算机网络——TCP的流水线传输(超详细)
    计算机网络——TCP的拥塞控制(超详细)
    计算机网络——TCP的三次握手与四次挥手(超详细)
    计算机网络——多路复用与多路分解
    转:资源 | 我爱自然语言处理
    bootsect及setup
    python默认编码设置
    实例分析C程序运行时的内存结构
    matlab常用目录操作
  • 原文地址:https://www.cnblogs.com/lr393993507/p/4864768.html
Copyright © 2020-2023  润新知