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(); } }