首页 > 技术文章 > ASP.NET Core获取请求完整的Url

Can-daydayup 原文

在ASP.NET项目中获取请求完整的Url:

获取System.Web命名空间下的类名为HttpRequestBase的Url方法:

    /// <summary>在派生类中替代时,获取有关当前请求的 URL 的信息。</summary>
    /// <returns>包含有关当前请求的 URL 的信息的对象。</returns>
    /// <exception cref="T:System.NotImplementedException">
    ///   始终。
    /// </exception>
    public virtual Uri Url
    {
      get
      {
        throw new NotImplementedException();
      }
    }

在控制器中获取:

//获取完整的Url地址 
string completeUrl = Request.Url.ToString();

在ASP.NET Core项目中获取:

        由于.NET Core相关接口重构,现在无法在项目中直接获取当前请求的完整的Url地址了,需要我们自己把Microsoft.AspNetCore.Http命名空间下类名为HttpRequest的相关方法拼接获取,如下所示。

public IActionResult Privacy()
{
//获取当前请求完整的Url地址
var GetCompleteUrlStr=GetCompleteUrl();
            
return View();
}

/// <summary>
/// 获取当前请求完整的Url地址
/// </summary>
/// <returns></returns>
private string GetCompleteUrl()
{ 
           return new StringBuilder()
                .Append(HttpContext.Request.Scheme)
                .Append("://")
                .Append(HttpContext.Request.Host)
                .Append(HttpContext.Request.PathBase)
                .Append(HttpContext.Request.Path)
                .Append(HttpContext.Request.QueryString)
                .ToString();
}

作者:追逐时光者

作者简介:一个热爱编程,善于分享,喜欢学习、探索、尝试新事物,新技术的程序猿。

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如果觉得时光这篇文章有帮助的话,可以点一下右下角的【♥推荐♥】,希望能够持续的为大家带来好的技术文章,文中可能存在描述不正确或错误的地方,欢迎指正、补充,不胜感激 !

推荐阅读