1. 程式人生 > >關於某些網站的圖片盜鏈功能,相關http 請求的解決方法

關於某些網站的圖片盜鏈功能,相關http 請求的解決方法

其實 關鍵就是 header中 的 Referer 屬性,可以通過firebug 檢視頭資訊 並獲得Referer,但有些情況下可能不能獲取,就只能通過抓包的方法來獲得了。

[java] view plain copy print?
  1. import java.io.BufferedInputStream;  
  2. import java.io.BufferedOutputStream;  
  3. import java.io.BufferedReader;  
  4. import java.io.File;  
  5. import java.io.FileOutputStream;  
  6. import java.io.InputStreamReader;  
  7. import java.net.HttpURLConnection;  
  8. import java.net.URL;  
  9. publicclass refererPost {  
  10.     publicstaticvoid main(String[] args){  
  11.         String urls = "http://113.107.42.72:88/images/uploadimg/rw201209231804.jpg";  
  12.         URL url = null;  
  13.         HttpURLConnection http = null;  
  14.         try {  
  15.             url = new
     URL(urls);  
  16.             http = (HttpURLConnection) url.openConnection();  
  17.             http.setDoInput(true);  
  18.             http.setDoOutput(true);  
  19.             http.setUseCaches(false);  
  20.             http.setConnectTimeout(50000);  
  21.             http.setReadTimeout(50000);  
  22.             http.setRequestMethod("GET"
    );  
  23.             http.setRequestProperty("Accept""image/png,image/*;q=0.8,*/*;q=0.5");  
  24.             http.setRequestProperty("Accept-Encoding""gzip");    
  25.             http.setRequestProperty("Referer""http://dmm.hk/");    
  26.             String param = "zs=dddddddddddddddddd";  
  27.             //http.getOutputStream().write(param.getBytes());    
  28.             //http.getOutputStream().flush();
  29.             //http.getOutputStream().close();
  30.             System.out.println("getResponseCode====="+http.getResponseCode());  
  31.             if (http.getResponseCode() == 200) {  
  32.                 File f = new File("D://a.jpg");  
  33.                 System.out.println("111111111111111111111111111111");  
  34.                 BufferedInputStream in = new BufferedInputStream(  
  35.             http.getInputStream());  
  36.             int c = 0;  
  37.             BufferedOutputStream b = new BufferedOutputStream(new FileOutputStream(f));  
  38.             while((c=in.read())!=-1){  
  39.                 b.write(c);  
  40.                 b.flush();  
  41.             }  
  42.             b.close();  
  43.             in.close();  
  44.             }  
  45.         } catch (Exception e) {  
  46.             System.out.println("err");  
  47.         } finally {  
  48.         if (http != null)  
  49.             http.disconnect();  
  50.         }  
  51.     }  
  52.     }  
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;


public class refererPost {
	public static void main(String[] args){
		String urls = "http://113.107.42.72:88/images/uploadimg/rw201209231804.jpg";
		URL url = null;
		HttpURLConnection http = null;
		try {
			url = new URL(urls);
			http = (HttpURLConnection) url.openConnection();
			http.setDoInput(true);
			http.setDoOutput(true);
			http.setUseCaches(false);
			http.setConnectTimeout(50000);
			http.setReadTimeout(50000);
			http.setRequestMethod("GET");
			http.setRequestProperty("Accept", "image/png,image/*;q=0.8,*/*;q=0.5");
			http.setRequestProperty("Accept-Encoding", "gzip");  
			http.setRequestProperty("Referer", "http://dmm.hk/");  
			String param = "zs=dddddddddddddddddd";
			//http.getOutputStream().write(param.getBytes());    
			//http.getOutputStream().flush();
			//http.getOutputStream().close();
			System.out.println("getResponseCode====="+http.getResponseCode());
			if (http.getResponseCode() == 200) {
				File f = new File("D://a.jpg");
				System.out.println("111111111111111111111111111111");
				BufferedInputStream in = new BufferedInputStream(
			http.getInputStream());
			int c = 0;
			BufferedOutputStream b = new BufferedOutputStream(new FileOutputStream(f));
			while((c=in.read())!=-1){
				b.write(c);
				b.flush();
			}
			
			b.close();
			in.close();
			}
		} catch (Exception e) {
			System.out.println("err");
		} finally {
		if (http != null)
			http.disconnect();
		}
	}
	}