📅  最后修改于: 2023-12-03 15:27:51.463000             🧑  作者: Mango
在C#中,获取绝对URL的方法十分简单。首先我们需要了解什么是绝对URL和相对URL。绝对URL是指包括协议和域名的完整URL,例如 https://www.example.com。而相对URL只包括路径部分,例如 /home。
使用C#中的Uri类可以很方便地获取绝对URL。以下是一个示例代码:
string relativeUrl = "/home";
Uri baseUri = new Uri("https://www.example.com");
Uri absoluteUri = new Uri(baseUri, relativeUrl);
string absoluteUrl = absoluteUri.ToString();
这段代码首先定义了一个相对URL,然后定义了一个基础URL(即网站的根目录)。接着,使用Uri类的构造函数将基础URL和相对URL作为参数来创建一个绝对URL。最后,使用Uri对象的ToString方法获取绝对URL的字符串形式。
需要注意的是,如果相对URL本身就已经是绝对URL,那么它将直接被返回。
另一种获取绝对URL的方法是使用HttpContext类。以下是一个示例代码:
string absoluteUrl = HttpContext.Current.Request.Url.AbsoluteUri;
这段代码通过HttpContext对象的Request属性获取当前HTTP请求的URL,并调用其AbsoluteUri属性获取绝对URL的字符串形式。
需要注意的是,由于HttpContext类是ASP.NET的一部分,因此在非ASP.NET环境下执行此代码可能引起异常。
以上介绍了通过Uri类和HttpContext类两种方法获取绝对URL的示例代码。对于大多数应用程序来说,使用Uri类即可满足需求。如果在ASP.NET环境下,则可以使用HttpContext类。
返回的Markdown代码片段为:
## 使用Uri类获取绝对URL
```csharp
string relativeUrl = "/home";
Uri baseUri = new Uri("https://www.example.com");
Uri absoluteUri = new Uri(baseUri, relativeUrl);
string absoluteUrl = absoluteUri.ToString();
string absoluteUrl = HttpContext.Current.Request.Url.AbsoluteUri;