ネットワークリダイレクトURLを取得するJava(302リダイレクト)

方法1:

1つの インポートjava.net.HttpURLConnectionの。
2つの インポートのjava.net.URL。
3   
4  インポートorg.junit.Assert。
5  輸入org.junit.Test。
6   
7  パブリック クラスGetRedirectUrlTestは{
 8      @Test
 9      公共 ボイド test_getRedirectUrl()スロー例外{
 10          = "http://www.baidu.com/link?url=ByBJLpHsj5nXx6DESXbmMjIrU5W4Eh0yg5wCQpe3kCQMlJK_RJBmdEYGm0DDTCoTDGaz7rH80gxjvtvoqJuYxK"文字列のURLを11          文字列expectUrl = "http://www.zhihu.com/question/20583607/answer/16597802";
12          列redictURL = getRedirectUrl(URL)。
13          Assert.assertEquals(expectUrl、redictURL)。
14      }
 15      
16      / ** 
17       *获取重定向地址
 18       * @paramの経路
 19       * @return 
20       * @throws 例外
 21       * / 
22      プライベート文字getRedirectUrl(文字列のパス)がスロー例外{
 23          HttpURLConnectionのCONN =(HttpURLConnectionの)新しいURL (経路)
 24                  .openConnection()。
25          conn.setInstanceFollowRedirects()。
26          conn.setConnectTimeout(5000 )。
27          リターン conn.getHeaderField( "場所" );
28      }
 29 }

 

方法2:

1  / * 
2つの      *プロセスは、リダイレクションアドレスのリンクをジャンプ
 。3       * @param URLアドレス源
 。4       * @return       対象ページの絶対アドレス
 。5       * / 
6      パブリック文字getAbsUrl(文字列のURL){
 7          CloseableHttpClientのHttpClient = HttpClients.createDefault ();
 8          HttpClientContextコンテキスト= HttpClientContext.create();
 9          HTTPGET HTTPGET = 新しい新しいHTTPGET(URL);
 10          CloseableHttpResponse応答= NULL ;
 11          文字absUrl = NULL ;
12          試み{
 13              応答= httpclient.execute(HTTPGET、コンテキスト)。
14              HttpHostターゲット= context.getTargetHost()。
15              リスト<URI> redirectLocations = context.getRedirectLocations()。
16              URI位置= URIUtils.resolve(httpget.getURI()、ターゲット、redirectLocations)。
17              のSystem.out.println( "最終HTTP場所:" + location.toASCIIString())。
18              absUrl = location.toASCIIString()。          
19          } キャッチ(IOExceptionを電子){
 20             e.printStackTrace();
21          } キャッチ(URISyntaxException電子){         
 22              e.printStackTrace();
23          } 最後に{
 24              のtry {
 25                  httpclient.close()。
26                  response.close()。
27              } キャッチ(IOExceptionを電子){               
 28                  e.printStackTrace();
29              }
 30          }
 31          リターンabsUrl。
32      }

 

おすすめ

転載: www.cnblogs.com/fnlingnzb-learner/p/11429834.html