欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java 獲取網絡302重定向URL的方法

 更新時間:2019年08月29日 16:54:04   作者:Boblim  
在本篇文章里小編給大家整理的是關于Java 獲取網絡302重定向URL的方法以及相關知識點,有興趣的朋友們參考下。

方法1:

import java.net.HttpURLConnection;
import java.net.URL;
 
import org.junit.Assert;
import org.junit.Test;
 
public class GetRedirectUrlTest {
  @Test
  public void test_getRedirectUrl() throws Exception {
    String url="http://www.baidu.com/link?url=ByBJLpHsj5nXx6DESXbmMjIrU5W4Eh0yg5wCQpe3kCQMlJK_RJBmdEYGm0DDTCoTDGaz7rH80gxjvtvoqJuYxK";
    String expectUrl="http://www.zhihu.com/question/20583607/answer/16597802";
    String redictURL = getRedirectUrl(url);
    Assert.assertEquals(expectUrl, redictURL);
  }
  
  /**
   * 獲取重定向地址
   * @param path
   * @return
   * @throws Exception
   */
  private String getRedirectUrl(String path) throws Exception {
    HttpURLConnection conn = (HttpURLConnection) new URL(path)
        .openConnection();
    conn.setInstanceFollowRedirects(false);
    conn.setConnectTimeout(5000);
    return conn.getHeaderField("Location");
  }
}

方法2:

/**
   * 處理跳轉鏈接,獲取重定向地址
   * @param url  源地址
   * @return   目標網頁的絕對地址
   */
  public String getAbsUrl(String url){
    CloseableHttpClient httpclient = HttpClients.createDefault();
    HttpClientContext context = HttpClientContext.create();
    HttpGet httpget = new HttpGet(url);
    CloseableHttpResponse response = null;
    String absUrl = null;
    try {
      response = httpclient.execute(httpget, context);
      HttpHost target = context.getTargetHost();
      List<URI> redirectLocations = context.getRedirectLocations();
      URI location = URIUtils.resolve(httpget.getURI(), target, redirectLocations);
      System.out.println("Final HTTP location: " + location.toASCIIString());
      absUrl = location.toASCIIString();     
    }catch(IOException e){
      e.printStackTrace();
    }catch (URISyntaxException e) {     
      e.printStackTrace();
    }finally {
      try {
        httpclient.close();
        response.close();
      } catch (IOException e) {        
        e.printStackTrace();
      }
    }
    return absUrl;
  }

以上就是2中最常用的方法,感謝大家對腳本之家的支持。

相關文章

  • Java中遍歷集合的并發(fā)修改異常解決方案實例代碼

    Java中遍歷集合的并發(fā)修改異常解決方案實例代碼

    當你遍歷集合的同時,又往集合中添加或者刪除元素,就可能報并發(fā)修改異常,下面這篇文章主要給大家介紹了關于Java中遍歷集合的并發(fā)修改異常解決方案的相關資料,需要的朋友可以參考下
    2022-12-12
  • 解決Springboot啟動報錯:類文件具有錯誤的版本61.0,應為?52.0

    解決Springboot啟動報錯:類文件具有錯誤的版本61.0,應為?52.0

    這篇文章主要給大家介紹了關于解決Springboot啟動報錯:類文件具有錯誤的版本?61.0,應為?52.0的相關資料,這是查閱了網上的很多資料才解決的,分享給大家,需要的朋友可以參考下
    2023-01-01
  • 使用MyBatis攔截器實現(xiàn)sql查詢權限動態(tài)修改代碼實例

    使用MyBatis攔截器實現(xiàn)sql查詢權限動態(tài)修改代碼實例

    這篇文章主要介紹了使用MyBatis攔截器實現(xiàn)sql查詢權限動態(tài)修改代碼實例,為了不耦合,現(xiàn)在的方案是在需要鑒權的Mybatis?Mapper方法上增加一個注解,在運行過程中判斷該注解存在即對sql進行修改,需要的朋友可以參考下
    2023-08-08
  • java事件處理模型知識點總結

    java事件處理模型知識點總結

    在本篇文章里小辮給大家分享的是一篇關于java事件處理模型知識點總結內容,有興趣的朋友們可以學習下。
    2021-01-01
  • 詳談Java幾種線程池類型介紹及使用方法

    詳談Java幾種線程池類型介紹及使用方法

    下面小編就為大家?guī)硪黄斦凧ava幾種線程池類型介紹及使用方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • java開發(fā)ServiceLoader實現(xiàn)機制及SPI應用

    java開發(fā)ServiceLoader實現(xiàn)機制及SPI應用

    這篇文章主要為大家介紹了java開發(fā)ServiceLoader實現(xiàn)機制及SPI應用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • Spring Boot 2和Redis例子實現(xiàn)過程解析

    Spring Boot 2和Redis例子實現(xiàn)過程解析

    這篇文章主要介紹了Spring Boot2發(fā)布與調用REST服務過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • SpringBoot圖文并茂講解登錄攔截器

    SpringBoot圖文并茂講解登錄攔截器

    其實spring boot攔截器的配置方式和springMVC差不多,只有一些小的改變需要注意下就ok了,下面這篇文章主要給大家介紹了關于如何在Springboot實現(xiàn)登陸攔截器功能的相關資料,需要的朋友可以參考下
    2022-06-06
  • Java中的Semaphore信號量深入解析

    Java中的Semaphore信號量深入解析

    這篇文章主要介紹了Java中的Semaphore信號量深入解析,Semaphore是Java里面另外一個基本的并發(fā)工具包類,主要的的作用是用來保護共享資源的訪問的,也就是僅僅允許一定數(shù)量的線程訪問共享資源,需要的朋友可以參考下
    2023-11-11
  • HashMap底層實現(xiàn)原理詳解

    HashMap底層實現(xiàn)原理詳解

    這篇文章主要介紹了HashMap底層實現(xiàn)原理詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02

最新評論