私は、クエリ文字列とフラグメントを相対URI、つまりスキームやホスト情報のないURIから抽出したいと考えています。相対URIを解析する
これを行うには、偽のホスト名で絶対URIにするよりも、これを行うよりエレガントな方法がありますか?
var relativeUri = "/dir1/dir2/file?a=b&c=d#fragment";
var uri = new Uri(new Uri("http://example.com"), relativeUri);
var path = Uri.UnescapeDataString(String.Concat(uri.Segments));
var query = uri.Query;
var fragment = uri.Fragment;
// path = "/dir1/dir2/file", query = "?a=b&c=d", fragment = "#fragment"
実は、 'HttpUtility.ParseQueryString()は'だけでなく相対URLで動作します 。少し遅れてパーティーに行きましたが、似たようなものをチェックしていました:) – NomadTraveler
@Nomad私はそうではないと恐れています。 '/ dir1/dir2/file?a = b'と' c = d#fragment'の2つの結果を生成します。あなたが本当に興味を持っているものではありません。本当にクエリ文字列を渡す必要があります。 – CodeCaster