6

短縮された URL を取得して、Java の文字列形式で元の完全な長さの URL に展開しようとしています。オンラインでチュートリアルを追跡できましたが、これを取得して実際に完全な URL を取得することはできません。誰かがこれを以前に行ったことがありますか、またはこれを行う方法を知っていますか? どんな助けでも巨大です、ありがとう

URLConnection conn = null;
try {
    URL inputURL = new URL("http://bit.ly/9mglq8");
    conn = inputURL.openConnection();

} catch (MalformedURLException e) {

} catch (IOException ioe) {

}
String realU = conn.toString();
Toast.makeText(ImagetestActivity.this, realU,
               Toast.LENGTH_LONG).show();
4

4 に答える 4

7
System.out.println("Short URL: "+ shortURL);
                urlConn =  connectURL(shortURL);
                urlConn.getHeaderFields();
                System.out.println("Original URL: "+ urlConn.getURL());

/* connectURL - This function will take a valid url and return a 
URL object representing the url address. */
URLConnection connectURL(String strURL) {
        URLConnection conn =null;
 try {
     URL inputURL = new URL(strURL);
     conn = inputURL.openConnection();
            int test = 0;

 }catch(MalformedURLException e) {
     System.out.println("Please input a valid URL");
 }catch(IOException ioe) {
     System.out.println("Can not connect to the URL");
 }
 return conn;
}
于 2012-05-19T00:40:01.177 に答える
3

おそらく、公式の bit.ly APIの展開ルックアップを使用するか、 URLConnectionのgetHeaderFieldLocationメソッドを使用してヘッダーを取得することをお勧めします。

私はこれらのどちらも行ったことがなく、後者で問題はないと思いますが、必要なものを確実に入手するには、公式の方法がおそらく正しい方法だと思います.

于 2012-05-19T00:38:53.050 に答える
0

bit.ly 仕様から:

ビットリーはどのように機能しますか? bitly は、「301 リダイレクト」を発行することによって機能します。これは、多くの URL で Web ページを利用できるようにするための手法です。bitly でリンクを短縮すると、クリックが bitly からリンク先 URL にリダイレクトされます。301 リダイレクトは、Web ページ リダイレクトの最も効率的で検索エンジンに適した方法であり、bitly が使用するものです。bitly はリンクを再利用したり変更したりしないため、リダイレクトは永続的であると考えています。

これが意味することは、301 応答コードを受け取ったときにどこにリダイレクトするかを判断するために、"Location" ヘッダーを調べる必要があるということです。301 応答の例を次に示します。

HTTP/1.1 301 は永久に移動しました場所: http://www.example.org/index.asp

于 2012-05-19T05:45:43.123 に答える