java 從通過網址獲取網頁圖片

package com.yanjun;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class ImageRequest {

  /**
    * 通過HTTP協議請求獲取網頁數據:
    * http://www.baidu.com/
    *    
    * @param args
    */

  public static void main(String[] args) throws Exception {
    // 從網絡上獲取圖片--URL對象用來封裝路徑
    URL url = new URL("http://www.baidu.com/");
    // 打開路徑鏈接---得到HttpURLConnection對象
    HttpURLConnection httpURLConnection = (HttpURLConnection) url
        .openConnection();
    // 通過HTTP協議請求網絡html---設置請求方式:get/post
    httpURLConnection.setRequestMethod("GET");
    // 設置連接超時
    httpURLConnection.setConnectTimeout(5000);
    // 從外界想手機應用內傳遞數據----通過輸入流獲取html數據
    InputStream inputStream = httpURLConnection.getInputStream();
    // 從輸入流中獲取html的二進制數據----readInputStream()
    byte[] data = readInputStream(inputStream);
    //將HTML代碼的二進制轉換成string類型
    String html = new String(data);
    //將數據打印在控制檯上
    System.out.println(html);
    inputStream.close();
  }

  // 讀取輸入流的方法
  public static byte[] readInputStream(InputStream inSream) throws Exception {
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    // 定義一個緩衝區
    byte[] buffer = new byte[1024];
    int len = 0;
    // 不斷的從流裏讀取數據---while循環---nSream.read(buffer)表示從流裏讀取數據到緩衝區
    // 讀取到末尾時,返回值是-1;
    while ((len = inSream.read(buffer)) != -1) {
      // 將緩衝區的數據寫到輸出流中
      byteArrayOutputStream.write(buffer, 0, len);
    }
    inSream.close();
    return byteArrayOutputStream.toByteArray();
  }

}
在控制檯上看結果哦!!!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章