java HTTP请求URL 获取其跳转后地址及参数

如果不想直接跳转到目标地址,想对中间的Location做些处理则可以通过HttpURLConnection实现。 // 必须设置false,否则会自动redirect到Location的地址 conn.setInstanceFollowRedirects(false);

[java] view plain copy print ?
  1. package com.zuidaima;  
  2.   
  3. import java.net.HttpURLConnection;  
  4. import java.net.URL;  
  5.   
  6. /** 
  7.  * 如何通过HttpURLConnection得到http 302的跳转地址 
  8.  *  
  9.  * @author javaniu 
  10.  *  
  11.  */  
  12. public class Http302 {  
  13.   
  14.     public static void main(String[] args) {  
  15.         try {  
  16.             String url = "http://www.zuidaima.com/302.htm";  
  17.             System.out.println("访问地址:" + url);  
  18.             URL serverUrl = new URL(url);  
  19.             HttpURLConnection conn = (HttpURLConnection) serverUrl  
  20.                     .openConnection();  
  21.             conn.setRequestMethod("GET");  
  22.             // 必须设置false,否则会自动redirect到Location的地址  
  23.             conn.setInstanceFollowRedirects(false);  
  24.   
  25.             conn.addRequestProperty("Accept-Charset""UTF-8;");  
  26.             conn.addRequestProperty("User-Agent",  
  27.                     "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Firefox/3.6.8");  
  28.             conn.addRequestProperty("Referer""http://zuidaima.com/");  
  29.             conn.connect();  
  30.             String location = conn.getHeaderField("Location");  
  31.   
  32.             serverUrl = new URL(location);  
  33.             conn = (HttpURLConnection) serverUrl.openConnection();  
  34.             conn.setRequestMethod("GET");  
  35.   
  36.             conn.addRequestProperty("Accept-Charset""UTF-8;");  
  37.             conn.addRequestProperty("User-Agent",  
  38.                     "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Firefox/3.6.8");  
  39.             conn.addRequestProperty("Referer""http://zuidaima.com/");  
  40.             conn.connect();  
  41.             System.out.println("跳转地址:" + location);  
  42.   
  43.         } catch (Exception e) {  
  44.             e.printStackTrace();  
  45.         }  
  46.     }  
  47.   
  48. }  
  49.   
  50.                       

转载: http://blog.csdn.net/yaerfeng/article/details/19031529

你可能感兴趣的:(java后端)