Java 通过设置Referer反盗链

  下面是完整的代码。

  

复制代码 代码如下:

  package cn.searchphoto.util;

  import java.io.File;

  import java.io.FileOutputStream;

  import java.io.InputStream;

  import java.io.OutputStream;

  import java.net.URL;

  import java.net.URLConnection;

  import java.util.zip.GZIPInputStream;

  /**

  * 下载远程网站的图片,通过设置Referer反反盗链。

  *

  * @author JAVA世纪网(java2000.net, laozizhu.com)

  */

  public class ImageDownloader {

  /**

  * 下载文件到指定位置

  * @param imgurl 下载连接

  * @param f 目标文件

  * @return 成功返回文件,失败返回null

  */

  public static File download(String imgurl, File f) {

  try {

  URL url = new URL(imgurl);

  URLConnection con = url.openConnection();

  int index = imgurl.indexOf("/", 10);

  con.setRequestProperty("Host", index == -1 ? imgurl.substring(7) : imgurl.substring(7, index));

  con.setRequestProperty("Referer", imgurl);

  InputStream is = con.getInputStream();

  if (con.getContentEncoding() != null && con.getContentEncoding().equalsIgnoreCase("gzip")) {

  is = new GZIPInputStream(con.getInputStream());

  }

  byte[] bs = new byte[1024];

  int len = -1;

  OutputStream os = new FileOutputStream(f);

  try {

  while ((len = is.read(bs)) != -1) {

  os.write(bs, 0, len);

  }

  } finally {

  try {

  os.close();

  } catch (Exception ex) {}

  try {

  is.close();

  } catch (Exception ex) {}

  }

  return f;

  } catch (Exception ex) {

  ex.printStackTrace();

  return null;

  }

  }

  }