2010-07-04 51 views
3

我一直在使用LongURL.org API擴展短網址。關於這項服務的好處是它會返回一個長URL,實際頁面和meta-info的標題。來自使用C#的短網址的長網址

我真正的問題是,它似乎需要過多的時間來獲取數據。我正在考慮將請求轉移到JavaScript,以便通過AJAX更新面板獲取該URL,以便快速加載頁面,並在用戶查看內容(某些搜索結果)時更新URL數據。

有誰知道我還能在更好的時間範圍內收集上述信息嗎?我正在使用C#ASP.NET,但會考慮其他語言的解決方案。任何在這方面的指導非常感謝。

+0

有誰知道爲什麼這些查找服務可能會這麼慢? – Alex 2010-07-04 17:51:57

+1

可能是因爲他們工作過度而資金不足。 – 2010-07-04 18:35:34

回答

4

這裏有一個我在之前項目中使用...

private string UrlLengthen(string url) 
{ 
    string newurl = url; 

    bool redirecting = true; 

    while (redirecting) 
    { 

     try 
     { 
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(newurl); 
      request.AllowAutoRedirect = false; 
      request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 4.0.20506)"; 
      HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
      if ((int)response.StatusCode == 301 || (int)response.StatusCode == 302) 
      { 
       string uriString = response.Headers["Location"]; 
       Log.Debug("Redirecting " + newurl + " to " + uriString + " because " + response.StatusCode); 
       newurl = uriString; 
       // and keep going 
      } 
      else 
      { 
       Log.Debug("Not redirecting " + url + " because " + response.StatusCode); 
       redirecting = false; 
      } 
     } 
     catch (Exception ex) 
     { 
      ex.Data.Add("url", newurl); 
      Exceptions.ExceptionRecord.ReportWarning(ex); // change this to your own 
      redirecting = false; 
     } 
    } 
    return newurl; 
} 
+0

這真的很有用,歡呼......我可能會這樣做,然後考慮從給定的域名提取HTML文檔標題 – Alex 2010-07-05 12:47:04

+0

我的意思是地址... – Alex 2010-07-05 21:18:25

+1

使用Html Agility Pack進行該步驟 – 2010-07-05 22:05:58