package com.yanjun;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public
class ImageRequest {
/**
* 經過HTTP協議請求網絡圖片 圖片網址:
* http://pic7.nipic.com/20100526/3355499_161646077541_2.jpg
*
* @param args
*/
public
static
void main(String[] args)
throws Exception {
// 從網絡上獲取圖片--URL對象用來封裝路徑
URL url =
new URL(
"http://pic7.nipic.com/20100526/3355499_161646077541_2.jpg");
// 打開路徑連接---獲得HttpURLConnection對象
HttpURLConnection httpURLConnection = (HttpURLConnection) url
.openConnection();
// 經過HTTP協議請求網絡圖片---設置請求方式:get/post
httpURLConnection.setRequestMethod("GET");
// 設置鏈接超時
httpURLConnection.setConnectTimeout(5000);
// 從外界想手機應用內傳遞數據----經過輸入流獲取圖片數據
InputStream inputStream = httpURLConnection.getInputStream();
// 從輸入流中獲取圖片的二進制數據----readInputStream()
byte[] data = readInputStream(inputStream);
// 將數據保存到應用文件的根目錄下,文件名爲系統時間
File inageFile = new File(System.currentTimeMillis() + ".jpg");
//經過文件輸出流將二進制數據寫到文件中去
FileOutputStream fileOutputStream = new FileOutputStream(inageFile);
//經過write()寫進文件中去
fileOutputStream.write(data);
fileOutputStream.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();
}
}
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 {
// 從網絡上獲取html-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(); } }