發送XML給第三方

來源:互聯網
上載者:User

面試中有一個題目是發送(接受)xml,並解析。

當時有接觸但是沒有注意,所以回來強力關注下,並且記錄在這,大家一起學習下:

 

[java]
public static StringBuffer sendSoapMsg(String soapMessage, 
           String targetUrl, String soapAction, Long timeout) throws Exception 
   { 
       busLogger.enterFuncDebugLog(soapMessage, soapAction, targetUrl, timeout); 
       //儲存響應訊息  
       HttpURLConnection conn = null; 
       BufferedReader bf = null; 
       StringBuffer sb = new StringBuffer(); 
        
       try 
       { 
           URL url = new URL(targetUrl); 
           conn = (HttpURLConnection) url.openConnection(); 
           conn.setRequestMethod("POST"); 
           conn.setDoOutput(true); 
           conn.addRequestProperty("SOAPAction", soapAction); 
           conn.addRequestProperty("Content-type", "text/xml; charset=UTF-8"); 
            
           //預設逾時時間30秒  
           conn.setConnectTimeout(timeout.intValue()); 
            
           //將發送請求參數寫入到http請求中  
           conn.getOutputStream().write(soapMessage.getBytes()); 
           conn.getOutputStream().flush(); 
           conn.getOutputStream().close(); 
            
           //從伺服器擷取響應結果  
           InputStream in = conn.getInputStream(); 
            
           //從伺服器讀取結果  
           bf = new BufferedReader(new InputStreamReader(in)); 
           String s = null; 
           while ((s = bf.readLine()) != null) 
           { 
               sb.append(s); 
           } 
       } 
       catch (Exception e) 
       { 
           busLogger.excepFuncDebugLog(e); 
            
           throw e; 
       } 
       finally 
       { 
           if (null != bf) 
           { 
               try 
               { 
                   bf.close(); 
               } 
               catch (IOException e) 
               { 
                   busLogger.excepFuncDebugLog(e); 
               } 
           } 
           if (conn != null) 
           { 
               conn.disconnect(); 
           } 
       } 
        
       busLogger.exitFuncDebugLog(sb.toString()); 
       return sb; 
   } 

 public static StringBuffer sendSoapMsg(String soapMessage,
            String targetUrl, String soapAction, Long timeout) throws Exception
    {
        busLogger.enterFuncDebugLog(soapMessage, soapAction, targetUrl, timeout);
        //儲存響應訊息
        HttpURLConnection conn = null;
        BufferedReader bf = null;
        StringBuffer sb = new StringBuffer();
       
        try
        {
            URL url = new URL(targetUrl);
            conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("POST");
            conn.setDoOutput(true);
            conn.addRequestProperty("SOAPAction", soapAction);
            conn.addRequestProperty("Content-type", "text/xml; charset=UTF-8");
           
            //預設逾時時間30秒
            conn.setConnectTimeout(timeout.intValue());
           
            //將發送請求參數寫入到http請求中
            conn.getOutputStream().write(soapMessage.getBytes());
            conn.getOutputStream().flush();
            conn.getOutputStream().close();
           
            //從伺服器擷取響應結果
            InputStream in = conn.getInputStream();
           
            //從伺服器讀取結果
            bf = new BufferedReader(new InputStreamReader(in));
            String s = null;
            while ((s = bf.readLine()) != null)
            {
                sb.append(s);
            }
        }
        catch (Exception e)
        {
            busLogger.excepFuncDebugLog(e);
           
            throw e;
        }
        finally
        {
            if (null != bf)
            {
                try
                {
                    bf.close();
                }
                catch (IOException e)
                {
                    busLogger.excepFuncDebugLog(e);
                }
            }
            if (conn != null)
            {
                conn.disconnect();
            }
        }
       
        busLogger.exitFuncDebugLog(sb.toString());
        return sb;
    }。其中的String內容為xml格式的。

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.