a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > JSP > 正文

Java 通過設置Referer反盜鏈

2024-09-05 00:21:17
字體:
來源:轉載
供稿:網友
以前寫過通過URLConnection下載圖片等網絡資源的代碼,不過發現象新浪等網站,都不允許直接連接,所以增強了代碼,通過模擬仿造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;
}
}
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: bxbx成人精品一区二区三区 | 欧美视频二区 | 97国产在线视频 | 亚洲欧美国产精品久久久久 | av中文字幕在线播放 | 中文字幕日韩专区 | 99热在线精品免费 | 午夜在线电影 | 午夜精品久久久久99蜜 | 2021av在线| 久久久一区二区三区 | 午夜欧美一区二区三区在线播放 | 噜噜噜噜噜色 | 亚洲电影中文字幕 | 久草院线| 亚洲这里只有精品 | 亚洲国产高清视频 | 欧洲一区| 亚洲国产精久久久久久久 | 色呦呦在线 | 亚洲狠狠爱一区二区三区 | 在线观看免费的网站www | 成人一区二区三区在线观看 | 成人免费视频网站在线观看 | 国产乱码精品一区二区三区手机版 | 国产精品视频一区二区三区, | 伊人91| 超碰在线影院 | 综合色婷婷一区二区亚洲欧美国产 | 免费视频一区 | 国内精品国产成人国产三级粉色 | 亚洲国产精品一区 | 免费日韩| 国产精品一区在线观看 | 暖暖日本在线视频 | 男女啪啪高清无遮挡 | 欧美视频在线一区 | 99爱免费观看 | 久久精品欧美一区二区三区不卡 | 日韩中文视频 | 久久综合久久久 |