天天看點

如何通過HttpURLConnection得到http 302的跳轉位址

如果不想直接跳轉到目标位址,想對中間的Location做些處理則可以通過HttpURLConnection實作。 // 必須設定false,否則會自動redirect到Location的位址 conn.setInstanceFollowRedirects(false);

package com.zuidaima;

import java.net.HttpURLConnection;
import java.net.URL;

/**
 * 如何通過HttpURLConnection得到http 302的跳轉位址
 * 
 * @author javaniu
 * 
 */
public class Http302 {

	public static void main(String[] args) {
		try {
			String url = "http://www.zuidaima.com/302.htm";
			System.out.println("通路位址:" + url);
			URL serverUrl = new URL(url);
			HttpURLConnection conn = (HttpURLConnection) serverUrl
					.openConnection();
			conn.setRequestMethod("GET");
			// 必須設定false,否則會自動redirect到Location的位址
			conn.setInstanceFollowRedirects(false);

			conn.addRequestProperty("Accept-Charset", "UTF-8;");
			conn.addRequestProperty("User-Agent",
					"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Firefox/3.6.8");
			conn.addRequestProperty("Referer", "http://zuidaima.com/");
			conn.connect();
			String location = conn.getHeaderField("Location");

			serverUrl = new URL(location);
			conn = (HttpURLConnection) serverUrl.openConnection();
			conn.setRequestMethod("GET");

			conn.addRequestProperty("Accept-Charset", "UTF-8;");
			conn.addRequestProperty("User-Agent",
					"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Firefox/3.6.8");
			conn.addRequestProperty("Referer", "http://zuidaima.com/");
			conn.connect();
			System.out.println("跳轉位址:" + location);

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

	    			
           

轉載: http://www.zuidaima.com/share/1550463509482496.htm