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中最常用的方法,感謝大家對腳本之家的支持。
相關文章
解決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)修改代碼實例,為了不耦合,現(xiàn)在的方案是在需要鑒權的Mybatis?Mapper方法上增加一個注解,在運行過程中判斷該注解存在即對sql進行修改,需要的朋友可以參考下2023-08-08java開發(fā)ServiceLoader實現(xiàn)機制及SPI應用
這篇文章主要為大家介紹了java開發(fā)ServiceLoader實現(xiàn)機制及SPI應用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10Spring Boot 2和Redis例子實現(xiàn)過程解析
這篇文章主要介紹了Spring Boot2發(fā)布與調用REST服務過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-11-11