📜  获取绝对url c#(1)

📅  最后修改于: 2023-12-03 15:27:51.463000             🧑  作者: Mango

获取绝对URL C#

在C#中,获取绝对URL的方法十分简单。首先我们需要了解什么是绝对URL和相对URL。绝对URL是指包括协议和域名的完整URL,例如 https://www.example.com。而相对URL只包括路径部分,例如 /home。

使用Uri类获取绝对URL

使用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,那么它将直接被返回。

使用HttpContext类获取绝对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();
使用HttpContext类获取绝对URL
string absoluteUrl = HttpContext.Current.Request.Url.AbsoluteUri;