我一直在使用LongURL.org API来扩展短网址。这项服务的好处是它返回一个长URL,实际页面的标题和元信息。
我遇到的真正问题是,获取数据似乎花费了过多的时间。我正在考虑将请求转移到JavaScript,以便通过AJAX更新面板获取URL,以便页面快速加载,并在用户查看内容(某些搜索结果)时更新URL数据。
有谁知道我还能在更好的时间框架内收集上述信息吗?我正在使用C#ASP.NET,但会考虑其他语言的解决方案。非常感谢在这方面的任何指导。
答案 0 :(得分:5)
这是我之前在项目中使用过的一个......
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;
}