Java發HTTP POST請求(內容為xml格式)__Java

來源:互聯網
上載者:User

http://a52071453.iteye.com/blog/1706949


<span style=""> </span><span style="">今天在給平台使用者提供http簡單介面的時候,順便寫了個調用的Java類供他參考。</span><br style=""><span style="">     伺服器位址:http://5.0.217.50:17001/VideoSend</span><br style=""><span style="">     伺服器提供的是xml格式的http介面,介面定義如下:</span>

<!--視頻點送: videoSend--><videoSend>    <header>        <sid>%s</sid>         <type>service</type>     </header>    <service name="videoSend">    <fromNum>%s</fromNum>         <toNum>%s</toNum>                   <!--需要接通的使用者的電話號碼 -->    <videoPath>%s</videoPath>           <!--視頻檔案路徑 -->    <chargeNumber>%s</chargeNumber>     <!--計費號碼 -->    </service></videoSend><!--視頻點送返回結果: videoSendResult--><videoSend>    <header>    <sid>%s</sid>     <type>service</type>     </header>    <service name="videoSendResult">    rescode>%s</rescode>                 <!--0000:視頻點送成功,0001:請求參數資訊錯誤, 0002:接通使用者失敗-->    </service></videoSend>

對應調用端的Java代碼(只是個demo,參數都暫時寫死了)如下:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;public class HttpPostTest {    void testPost(String urlStr) {        try {            URL url = new URL(urlStr);            URLConnection con = url.openConnection();            con.setDoOutput(true);            con.setRequestProperty("Pragma:", "no-cache");            con.setRequestProperty("Cache-Control", "no-cache");            con.setRequestProperty("Content-Type", "text/xml");            OutputStreamWriter out = new OutputStreamWriter(con                    .getOutputStream());                String xmlInfo = getXmlInfo();            System.out.println("urlStr=" + urlStr);            System.out.println("xmlInfo=" + xmlInfo);            out.write(new String(xmlInfo.getBytes("ISO-8859-1")));            out.flush();            out.close();            BufferedReader br = new BufferedReader(new InputStreamReader(con                    .getInputStream()));            String line = "";            for (line = br.readLine(); line != null; line = br.readLine()) {                System.out.println(line);            }        } catch (MalformedURLException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }    private String getXmlInfo() {        StringBuilder sb = new StringBuilder();        sb.append("<videoSend>");        sb.append("    <header>");        sb.append("        <sid>1</sid>");        sb.append("        <type>service</type>");        sb.append("    </header>");        sb.append("    <service name=\"videoSend\">");        sb.append("        <fromNum>0000021000011001</fromNum>");        sb.append("           <toNum>33647405</toNum>");        sb.append("        <videoPath>mnt/5.0.217.50/resources/80009.mov</videoPath>");        sb.append("        <chargeNumber>0000021000011001</chargeNumber>");        sb.append("    </service>");        sb.append("</videoSend>");        return sb.toString();    }    public static void main(String[] args) {        String url = "http://5.0.217.50:17001/VideoSend";        new HttpPostTest().testPost(url);    }}

2 XML傳輸

二、用戶端代碼

通過Http Post Xml傳遞資料,用戶端一般是通過URL建立到服務端的串連,向服務端發送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.