System.UriクラスでリクエストURLの取得と解析

2009/12/11 18:33Update
TAGS: Uri | URL | HttpRequest | リクエスト

リクエストURLからホスト名、ファイル名、絶対パス、URIなどを取得・解析方法について。

System.Uriクラスについて


Uri クラス(System)

URLの取得


以下はC#言語を用いて解説します。
//HttpRequestオブジェクトからUri取得
HttpRequest req = ...;
Uri uri = req.Url;

//HttpContextからUri取得
Uri uri = HttpContext.Current.Request.Url;

//URL 文字列からUriインスタンスを構築
String url = "http://www.syboos.jp/abc.aspx?a=a1&b=b1";
Uri uri = new Uri(url);


URLの解析



例えば、クエストURLは:
http://www.syboos.jp/mycontext/xx/yy.aspx?a=a1&b=b1#top
の場合、

//絶対URI 
Console.WriteLine(uri.AbsolutePath);
//結果: /mycontext/xx/yy.aspx

//絶対パス
Console.WriteLine(uri.AbsoluteUri);
//結果: http://www.syboos.jp/mycontext/xx/yy.aspx?a=a1&b=b1#top

//フラグメント
Console.WriteLine(uri.Fragment);
//結果: #top

//ホスト名またはIPアドレス
Console.WriteLine(uri.Host);
//結果: www.syboos.jp

//AbsolutePathプロパティとリクエスト文字列
Console.WriteLine(u.PathAndQuery);
//結果: /mycontext/xx/yy.aspx?a=a1&b=b1


参考資料


Uri クラス(System)
URLを解析する: .NET Tips: C#, VB.NET, Visual Studio

有关作者
Syboos.jp編集長システム設計や開発、保守運営などを行ってます。オープンソース技術に興味があります。

Sponsored Link


Comments

  • Relative Articles