zoukankan      html  css  js  c++  java
  • C#还原短地址

    随着微博的盛行,推出短地址服务的网站是越来越多了,如最近新浪重金买下的t.cn。当用户在浏览器中访问短地址时,服务器端一般会通过返回302状态使用户浏览器跳转到正确页面。而在302响应的header中会有个[Location]的键值,它保存着要跳转的真正url。我们只要模拟请求短地址再获取header中的Location内容,就能拿到正确的页面url。

    代码如下,唯一需要注意的是,一定要设HttpWebRequest的AllowAutoRedirect属性为false,要不返回的response会是跳转后页面的。

            /// <summary>
            
    /// 还原短地址
            
    /// </summary>
            public static string ExpandShortUrl(string shortUrl)
            {
                
    string nativeUrl = null;
                
    try
                {
                    HttpWebRequest req 
    = (HttpWebRequest)HttpWebRequest.Create(shortUrl);
                    req.AllowAutoRedirect 
    = false;  // 禁止自动跳转
                    HttpWebResponse response = (HttpWebResponse)req.GetResponse();
                    
    if (response.StatusCode == HttpStatusCode.Found)
                        nativeUrl 
    = response.Headers["Location"];
                }
                
    catch (Exception ex)
                {
                    nativeUrl 
    = null;
                }

                
    return nativeUrl;

            }

  • 相关阅读:
    记录ICallbackEventHandler 同时并发访问容易引发的问题
    IIS 属性
    Solaris10 安装
    VerifyRenderingInServerForm和EnableEventValidation引发的两个问题
    Solaris 上网配置
    动态数据类型转换
    RDLC 折线图
    codesmith复制中文乱码解决
    关于手机等品牌型号搜索与采集的中文分词分离
    说点包租公限制共享上网的破事
  • 原文地址:https://www.cnblogs.com/vento/p/1998219.html
Copyright © 2011-2022 走看看