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

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