vickzhu

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            151 隨筆 :: 0 文章 :: 34 評論 :: 0 Trackbacks
          以下都是實戰經驗:
          1、Socket讀取
                String strServer=http://www.google.cn;//這里同樣可以用ip來訪問:203.208.35.100
                String strPage="/language_tools?hl=zh-CN";
                try { 
                     String hostname = strServer; 
                     int port = 80; 
                     InetAddress addr = InetAddress.getByName(hostname); 
                     Socket socket = new Socket(addr, port);
                     BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF8")); 
                     wr.write("GET " + strPage + " HTTP/1.0\r\n"); 
                     wr.write("HOST:" + strServer + "\r\n"); 
                     wr.write("\r\n"); 
                     wr.flush();
                     BufferedReader rd = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                     String line; 
                     while ((line = rd.readLine()) != null) { 
                          System.out.println(line); 
                     }
                     wr.close(); 
                     rd.close(); 
                } catch (Exception e) { 
                     System.out.println(e.toString()); 
                }
          2、HttpClient方式
                HttpClient client=new HttpClient();
                GetMethod method=new GetMethod("       int status=client.executeMethod(method);
                if(status==HttpStatus.SC_OK){
                 //讀取內容
                 byte[] responseBody = method.getResponseBody();
                 //處理內容
                 System.out.println(new String(responseBody));
                 System.out.println("文件名稱:"+method.getPath());
                  }
          3、HttpURLConnection方式
                URL url = new URL("這里是你要連接的地址");
                HttpURLConnection conn = (HttpURLConnection)url.openConnection();
                conn.setDoOutput(true);//是否可用于輸出(輸出參數),默認為fasle。另:setDoInput()為是否可用于輸入,默認為true
                String parameters = "name=admin&password=123456";//這里是要傳遞的參數
                OutputStream os = conn.getOutputStream();
                os.write(parameters.getBytes("utf-8"));
                os.flush();
                os.close();
                System.out.println("返回狀態碼:"+conn.getResponseCode());
                System.out.println("返回消息:"+conn.getResponseMessage());
                InputStream is = conn.getInputStream();
                BufferedReader br = new BufferedReader(new InputStreamReader(is,"utf-8"));
                String line = null;
                while((line=br.readLine())!=null){
                 System.out.println(line);
                }
              //  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();;
              //  DocumentBuilder db = dbf.newDocumentBuilder();
              //  Document doc = db.parse(is);
          如果誰還有更多的方式分享,請留言!

          評論

          # re: java 讀取頁面源碼 的多種方式[未登錄] 2008-11-24 20:39 fisher
          GetMethod method=new GetMethod("http://www.baidu.com/");

          GetMethod ?

          這個東西哪來的?  回復  更多評論
            

          # re: java 讀取頁面源碼 的多種方式 2008-11-25 09:03 vickzhu
          你好HttpClient和GetMethod都是來自apache的包  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 米林县| 札达县| 延吉市| 攀枝花市| 齐河县| 星子县| 峨山| 永定县| 柳林县| 景东| 辉南县| 台南县| 武川县| 合肥市| 德安县| 松江区| 秭归县| 枝江市| 佛坪县| 延川县| 富裕县| 同江市| 淳安县| 清苑县| 平罗县| 太康县| 镇平县| 凤城市| 延安市| 沁阳市| 金平| 文昌市| 报价| 得荣县| 无锡市| 新丰县| 手机| 乐亭县| 和平县| 天水市| 武清区|