短縮URLの展開
短縮URLから短縮前のURLを取得する簡単なコード片。探しても見つからないんで作ってみました。
using(WebClient wc = new WebClient()) { wc.DownloadString("http://bit.ly/xxxx"); var info = typeof(WebClient).GetField("m_WebResponse", BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Instance); var response = info.GetValue(this.ExpandServiceConnector) as HttpWebResponse; Console.WriteLine(response.ResponseUri); }
http://bit.ly/xxxxの部分は短縮URLサービスによって短縮されたURLに書き換えれば使えるはず。
WebClientで実際にその短縮URLを踏み、リフレクションを使ってどこのページに繋がったのかを取ってきてくれます。
リフレクション使わないでも、HttpWebRequestで短縮URLを踏んで、HttpWebResponseでResponseUrlを取ればいいじゃん…って突っ込みはなしで。