httpclient3 post 方法

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 21:02   4082   0
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();
     }
   }
}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP