2010-07-04 10 views
3

J'ai utilisé l'API LongURL.org pour développer des URL courtes. La grande chose à propos de ce service est qu'il renvoie une longue URL, le titre de la page actuelle et méta-info.Longues URL provenant de URL courtes utilisant C#

Le vrai problème que j'ai est qu'il semble prendre un temps excessif pour aller chercher les données. J'envisage de transférer la requête vers JavaScript pour que l'URL soit récupérée via un panneau de mise à jour AJAX, afin que la page se charge rapidement et que les données URL soient mises à jour pendant que l'utilisateur regarde le contenu (certains résultats de recherche).

Est-ce que quelqu'un sait comment je pourrais rassembler les informations décrites ci-dessus, dans un meilleur délai? J'utilise C# ASP.NET mais je considérerais des solutions dans d'autres langues. Toute orientation dans ce domaine est très appréciée.

+0

Est-ce que quelqu'un sait pourquoi ces services de consultation pourraient être si lent ?? – Alex

+1

probablement parce qu'ils sont surmenés et sous-financés. –

Répondre

4

est ici que je l'ai utilisé dans un projet avant ...

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

Cela est vraiment utile, acclamations ... Je pourrais le faire, et ensuite chercher dans l'extraction de titres HTML Doc du nom de domaine donné – Alex

+0

Je veux dire l'adresse ... – Alex

+1

Utilisez le Pack Html Agility pour cette étape –