发送xml的http请求并返回xml消息体



       发送xml的http请求并返回xml消息体
       public class SendAndGetXml

       {

            public static void main(String[] args) throws Exception
           {
                   String rqestXml = "";
                   String urls="";
    
           try
           {   
                   String appserverIp = "10.166.46.182";
                   String appserverPort = "8080";
                   //发送xml消息体
                   rqestXml = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><root><ucAccount>"
                   + "zkf48267"
                   + "</ucAccount>"
                   + "<passWord>"
                   + "zkf48267"
                   + "</passWord></root>";
                    // 访问远程接接口
                   urls = "http://" + appserverIp + ":" + appserverPort
                   + "/ICBCCattestationM/validate";
     
                   System.out.println(rqestXml);
                   System.out.println(urls);
     
         }

        catch (Exception e)
        {
                 throw new Exception();
        }
        //使用HttpURLConnection发送http请求
        byte[] xmlbyte = rqestXml.getBytes("UTF-8"); 
        URL url = new URL(urls); 
        HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
        conn.setConnectTimeout(5* 1000); 
        conn.setDoOutput(true);//允许输出  
        conn.setUseCaches(false);//不使用Cache  
        conn.setRequestMethod("POST");           
        conn.setRequestProperty("Connection", "Keep-Alive");//维持长连接  
        conn.setRequestProperty("Charset", "UTF-8"); 
        conn.setRequestProperty("Content-Length", String.valueOf(xmlbyte.length)); 
        conn.setRequestProperty("Content-Type", "text/xml; charset=UTF-8"); 
        DataOutputStream outStream = new DataOutputStream(conn.getOutputStream()); 
        outStream.write(xmlbyte);//发送xml数据  
        outStream.flush();
        outStream.close();

        //解析返回来的xml消息体
         byte[] msgBody = null;
         if (conn.getResponseCode() != 200) throw new RuntimeException("请求url失败"); 
         InputStream is = conn.getInputStream();//获取返回数据 

         byte[] temp = new byte[1024];
         int n = 0;
         ByteArrayOutputStream bos = new ByteArrayOutputStream();
         while ((n = is.read(temp)) != -1)
        {
                  bos.write(temp, 0, n);
        }
        msgBody = bos.toByteArray();
        bos.close();
        is.close();
        String returnXml= new String(msgBody, "UTF-8").trim();

        conn.disconnect();
    
        // 以下下游解析XML
        System.out.println(returnXml);
      }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值