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

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

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

    posts - 297,  comments - 1618,  trackbacks - 0
          今天跟TiGERTiAN談到HttpURLConnection使用中的一個問題,就是當連接到的那個地址重定向到另一個地址時,怎么樣獲得那個重定向后的地址,弄了一下,找出了方法,結果起先我們兩個都沒想到,嘿嘿,在此記錄一下。
          HttpURLConnection是基于HTTP協議的,其底層通過socket通信實現。
          下面來看一個例子:
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.io.BufferedReader;
    import java.io.InputStreamReader;

    /**
     * 網頁閱讀器.
     * 
    @author <a href="mailto:xiexingxing1121@126.com">AmigoXie</a>
     * Creation date: 2007-10-9 - 上午11:47:26
     
    */

    public class PageReader {
        
    //連接對象
        private static HttpURLConnection conn;

        
    /**
         * 根據url連接某地址,并返回返回碼.
         * 返回碼說明:
         *         0~200為正常情況,其中200為OK
         *         其余都為錯誤的情況,具體請參見w3
         * 
    @param urlStr 需連接的url字符串
         
    */

        
    private int connect(String urlStr) throws Exception {
            URL url 
    = new URL(urlStr);
            conn 
    = (HttpURLConnection) url.openConnection();
            System.out.println(
    "返回碼: " + conn.getResponseCode());
            
    //如果定向的地址經過重定向,
            
    //那么conn.getURL().toString()顯示的是重定向后的地址
            System.out.println(conn.getURL().toString());
            
    return conn.getResponseCode();
        }


        
    /**
         * 讀取網頁的內容.
         * 
    @return 返回網頁的內容
         
    */

        
    private String readContents() throws Exception {
            BufferedReader in 
    = null;
            StringBuffer sb 
    = new StringBuffer();
            in 
    = new BufferedReader(new InputStreamReader(conn
                    .getInputStream()));

            String inputLine;
            
    while ((inputLine = in.readLine()) != null{
                sb.append(inputLine);
                sb.append(
    "\n");
            }

            
    return sb.toString();
        }


        
    /**
         * 中斷連接.
         
    */

        
    private void disconnect() {
            conn.disconnect();
        }

        
        
    /**
         * 測試方法
         * 
    @param args
         * 
    @throws Exception
         
    */

        
    public static void main(String[] args) throws Exception {
            PageReader reader 
    = new PageReader();
            String url 
    = "http://hexapixel.com/download.php?file=com.hexapixel.widgets.ribbon.alphatest.src.jar";
            reader.connect(url);
            String content 
    = reader.readContents();
            System.out.println(
    "網頁內容:" + content);
            reader.disconnect();
        }

    }

          呵呵,http://hexapixel.com/download.php?file=com.hexapixel.widgets.ribbon.alphatest.src.jar
         這個地址會進行重定向,定向為:http://hexapixel.com/files/com.hexapixel.widgets.ribbon.alphatest.src.jar
         TiGERTiAN想要獲得的就是后面那個地址,運行該程序后,大家可以看到,System.out.println(conn.getURL().toString());打出的就是這個地址,可惜TiGERTiAN和我開始都沒想到,看來是要多試試的。大家可以將那個url地址改成http://www.tkk7.com/amigoxie試試,這個程序實現的是一個很簡單的網頁閱讀器呵!
    posted on 2007-10-09 12:36 阿蜜果 閱讀(6104) 評論(10)  編輯  收藏 所屬分類: Java


    FeedBack:
    # re: HttpURLConnection使用中遇到的一個問題
    2007-10-09 13:03 | 千里冰封
    呵呵,搞起這個來了,有意思  回復  更多評論
      
    # re: HttpURLConnection使用中遇到的一個問題
    2007-10-09 13:07 | 阿蜜果
    @千里冰封
    是有個朋友用這個時發現的一個問題
    :)  回復  更多評論
      
    # re: HttpURLConnection使用中遇到的一個問題
    2007-10-09 13:17 | dennis
    HttpURLConnection默認是允許重定向,你可以關閉

    conn.setFollowRedirects(false);  回復  更多評論
      
    # re: HttpURLConnection使用中遇到的一個問題
    2007-10-09 18:25 | TiGERTiAN
    嘿嘿。。。多虧Amigo姐姐。。不然要煩死我了。。。  回復  更多評論
      
    # re: HttpURLConnection使用中遇到的一個問題
    2007-10-10 16:28 | 阿蜜果
    @ dennis
    謝謝指點

    @ TiGERTiAN
    同學習嘛  回復  更多評論
      
    # re: HttpURLConnection使用中遇到的一個問題[未登錄]
    2007-10-10 23:10 | xmlspy
    直接使用commons-httpclient-3.1就可以了,比這個方便多了  回復  更多評論
      
    # re: HttpURLConnection使用中遇到的一個問題
    2007-10-11 08:48 | 阿蜜果
    @xmlspy
    恩,commons-httpclient-3.1包還不錯,不過我那個朋友沒有用那個包。它直接用HttpURLConnection時出現的這個問題  回復  更多評論
      
    # re: HttpURLConnection使用中遇到的一個問題[未登錄]
    2007-10-17 20:41 | yoyo
    code review:

    1)conn.getResponseCode(); 重構為: int resultCode = conn.getResponseCode();

    2) StringBuffer sb = new StringBuffer(); 重構為:
    StringBuffer sb = new StringBuffer(conn
    .getInputStream().length);
      回復  更多評論
      
    # re: HttpURLConnection使用中遇到的一個問題[未登錄]
    2007-10-18 08:35 | 阿蜜果
    @yoyo
    thank you very much
    :)  回復  更多評論
      
    # re: HttpURLConnection使用中遇到的一個問題
    2008-09-11 18:08 | hi
    urlconnection 能否將xml字符串發送到php端?我的qq 510823368  回復  更多評論
      
    <2007年10月>
    30123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

          生活將我們磨圓,是為了讓我們滾得更遠——“圓”來如此。
          我的作品:
          玩轉Axure RP  (2015年12月出版)
          

          Power Designer系統分析與建模實戰  (2015年7月出版)
          
         Struts2+Hibernate3+Spring2   (2010年5月出版)
         

    留言簿(263)

    隨筆分類

    隨筆檔案

    文章分類

    相冊

    關注blog

    積分與排名

    • 積分 - 2294512
    • 排名 - 3

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久不见久久见中文字幕免费| 亚洲日韩一中文字暮| 男人扒开添女人下部免费视频| 日韩视频免费在线| 美女无遮挡免费视频网站| yy6080久久亚洲精品| 青青免费在线视频| 亚洲乱码日产精品a级毛片久久| 新最免费影视大全在线播放| 亚洲熟伦熟女新五十路熟妇 | 久久精品国产亚洲av麻豆| 免费一级不卡毛片| 亚洲综合无码一区二区| 青青视频观看免费99| 亚洲精品第一国产综合亚AV| 四虎永久免费观看| 韩国免费a级作爱片无码| 亚洲精品在线观看视频| 无码国产精品一区二区免费式直播| jiz zz在亚洲| 亚洲国产成人久久精品99| 97无码人妻福利免费公开在线视频| 久久亚洲精品国产精品| 99热在线精品免费全部my| 鲁死你资源站亚洲av| 日韩精品亚洲aⅴ在线影院| 免费国产黄网站在线观看视频| 亚洲乱码在线卡一卡二卡新区| 免费人成年激情视频在线观看| 国产免费网站看v片在线| 亚洲伊人色一综合网| 亚洲男人av香蕉爽爽爽爽| 99久久国产免费-99久久国产免费| 国产成人精品亚洲日本在线| 亚洲高清无码综合性爱视频| 99精品视频在线视频免费观看| 亚洲精品精华液一区二区 | 亚洲精品无码久久久久APP| 亚洲 综合 国产 欧洲 丝袜| 亚洲一区二区在线免费观看| 亚洲国产精品无码久久98 |