<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 241,  comments - 116,  trackbacks - 0

    Java中可以使用HttpURLConnection來(lái)請(qǐng)求WEB資源。

     

    1、 URL請(qǐng)求的類別

    分為二類,GET與POST請(qǐng)求。二者的區(qū)別在于:
    a:) get請(qǐng)求可以獲取靜態(tài)頁(yè)面,也可以把參數(shù)放在URL字串后面,傳遞給servlet,

    b:) post與get的不同之處在于post的參數(shù)不是放在URL字串里面,而是放在http請(qǐng)求的正文內(nèi)。

     

     

    2、URLConnection的對(duì)象問(wèn)題

    1. URL url = new URL("http://localhost:8080/TestHttpURLConnectionPro.do");  
    2.   
    3. URLConnection rulConnection = url.openConnection();// 此處的urlConnection對(duì)象實(shí)際上是根據(jù)URL的  
    4.           // 請(qǐng)求協(xié)議(此處是http)生成的URLConnection類  
    5.           // 的子類HttpURLConnection,故此處最好將其轉(zhuǎn)化  
    6.           // 為HttpURLConnection類型的對(duì)象,以便用到  
    7.           // HttpURLConnection更多的API.如下:  
    8.   
    9. HttpURLConnection httpUrlConnection = (HttpURLConnection) rulConnection; 
    3、HttpURLConnection對(duì)象參數(shù)問(wèn)題
    1. // 設(shè)置是否向httpUrlConnection輸出,因?yàn)檫@個(gè)是post請(qǐng)求,參數(shù)要放在  
    2. // http正文內(nèi),因此需要設(shè)為true, 默認(rèn)情況下是false;  
    3. httpUrlConnection.setDoOutput(true);  
    4.   
    5. // 設(shè)置是否從httpUrlConnection讀入,默認(rèn)情況下是true;  
    6. httpUrlConnection.setDoInput(true);  
    7.   
    8. // Post 請(qǐng)求不能使用緩存  
    9. httpUrlConnection.setUseCaches(false);  
    10.   
    11. // 設(shè)定傳送的內(nèi)容類型是可序列化的java對(duì)象  
    12. // (如果不設(shè)此項(xiàng),在傳送序列化對(duì)象時(shí),當(dāng)WEB服務(wù)默認(rèn)的不是這種類型時(shí)可能拋java.io.EOFException)  
    13. httpUrlConnection.setRequestProperty("Content-type""application/x-java-serialized-object");  
    14.   
    15. // 設(shè)定請(qǐng)求的方法為"POST",默認(rèn)是GET  
    16. httpUrlConnection.setRequestMethod("POST");  
    17.   
    18. // 連接,從上述第2條中url.openConnection()至此的配置必須要在connect之前完成,  
    19.         httpUrlConnection.connect(); 
    4、HttpURLConnection連接問(wèn)題
    1. // 此處getOutputStream會(huì)隱含的進(jìn)行connect(即:如同調(diào)用上面的connect()方法,  
    2. // 所以在開(kāi)發(fā)中不調(diào)用上述的connect()也可以)。  
    3. OutputStream outStrm = httpUrlConnection.getOutputStream();
    5、HttpURLConnection寫(xiě)數(shù)據(jù)與發(fā)送數(shù)據(jù)問(wèn)題
    1. // 現(xiàn)在通過(guò)輸出流對(duì)象構(gòu)建對(duì)象輸出流對(duì)象,以實(shí)現(xiàn)輸出可序列化的對(duì)象。  
    2. ObjectOutputStream objOutputStrm = new ObjectOutputStream(outStrm);  
    3.   
    4. // 向?qū)ο筝敵隽鲗?xiě)出數(shù)據(jù),這些數(shù)據(jù)將存到內(nèi)存緩沖區(qū)中  
    5. objOutputStrm.writeObject(new String("我是測(cè)試數(shù)據(jù)"));  
    6.   
    7. // 刷新對(duì)象輸出流,將任何字節(jié)都寫(xiě)入潛在的流中(些處為ObjectOutputStream)  
    8. objOutputStm.flush();  
    9.   
    10. // 關(guān)閉流對(duì)象。此時(shí),不能再向?qū)ο筝敵隽鲗?xiě)入任何數(shù)據(jù),先前寫(xiě)入的數(shù)據(jù)存在于內(nèi)存緩沖區(qū)中,  
    11. // 在調(diào)用下邊的getInputStream()函數(shù)時(shí)才把準(zhǔn)備好的http請(qǐng)求正式發(fā)送到服務(wù)器  
    12. objOutputStm.close();  
    13.   
    14. // 調(diào)用HttpURLConnection連接對(duì)象的getInputStream()函數(shù),  
    15. // 將內(nèi)存緩沖區(qū)中封裝好的完整的HTTP請(qǐng)求電文發(fā)送到服務(wù)端。  
    16. InputStream inStrm = httpConn.getInputStream(); // <===注意,實(shí)際發(fā)送請(qǐng)求的代碼段就在這里  
    17.   
    18. // 上邊的httpConn.getInputStream()方法已調(diào)用,本次HTTP請(qǐng)求已結(jié)束,下邊向?qū)ο筝敵隽鞯妮敵鲆褵o(wú)意義,  
    19. // 既使對(duì)象輸出流沒(méi)有調(diào)用close()方法,下邊的操作也不會(huì)向?qū)ο筝敵隽鲗?xiě)入任何數(shù)據(jù).  
    20. // 因此,要重新發(fā)送數(shù)據(jù)時(shí)需要重新創(chuàng)建連接、重新設(shè)參數(shù)、重新創(chuàng)建流對(duì)象、重新寫(xiě)數(shù)據(jù)、  
    21. // 重新發(fā)送數(shù)據(jù)(至于是否不用重新這些操作需要再研究)  
    22. objOutputStm.writeObject(new String(""));  
    23. httpConn.getInputStream(); 
    6、post參數(shù)的方法
    1. OutputStream os = httpConn.getOutputStream();  
    2.             String param = new String();  
    3.             param = "CorpID=" + CorpID +  
    4.                     "&LoginName=" + LoginName+  
    5.                     "&send_no=" + phoneNumber +  
    6.                     "&msg=" + java.net.URLEncoder.encode(msg,"GBK"); ;  
    7.             os.write(param.getBytes()); 
    posted on 2011-06-28 09:50 墻頭草 閱讀(4574) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    人人游戲網(wǎng) 軟件開(kāi)發(fā)網(wǎng) 貨運(yùn)專家
    主站蜘蛛池模板: 亚洲成AV人片在线观看无| 亚洲邪恶天堂影院在线观看| 日本高清免费网站| 丝袜熟女国偷自产中文字幕亚洲| 久久亚洲熟女cc98cm| 久久精品国产亚洲av品善| 国产午夜免费高清久久影院| 免费看美女让人桶尿口| 亚洲AV永久精品爱情岛论坛| 亚洲人成人伊人成综合网无码| 91福利免费网站在线观看| 成人免费毛片内射美女-百度| 亚洲无码黄色网址| 日韩亚洲人成在线| 99re6在线精品视频免费播放 | 免费av片在线观看网站| 亚洲午夜久久久久久久久久| 亚洲手机中文字幕| 成在线人免费无码高潮喷水| 免费看大美女大黄大色| 老外毛片免费视频播放| 成人性生免费视频| 亚洲欧洲校园自拍都市| 免费精品人在线二线三线区别| 亚洲国产老鸭窝一区二区三区| 2020因为爱你带字幕免费观看全集 | 91亚洲国产成人精品下载| 91手机看片国产永久免费| 亚洲精品~无码抽插| 日本精品久久久久久久久免费 | 国产亚洲精品免费| 免费看国产精品3a黄的视频| 精品亚洲av无码一区二区柚蜜| 亚洲视频人成在线播放| 99精品视频在线观看免费专区| 亚洲欧洲专线一区| 亚洲精品无码成人片久久| 国产精品美女午夜爽爽爽免费| 一级中文字幕乱码免费| 亚洲日韩在线第一页| 久久免费看黄a级毛片|