.net GetComponents返回查询参数,即使没有请求

q0qdq0h2  于 2023-05-30  发布在  .NET
关注(0)|答案(1)|浏览(132)

我正在尝试提取不带查询参数的PathString的路径。所以我做了以下事情:

var ps = new PathString("/someapi/wayne/insane?param=1234&ups=134");
var u = new UriBuilder();
u.Path = ps;
// Built Uri: http://localhost/someapi/wayne/insane%3Fparam=1234&ups=134
u.Uri.GetComponents(UriComponents.Path, UriFormat.Unescaped).Dump();

// returns: "someapi/wayne/insane?param=1234&ups=134"

我希望它会回来:/someapi/wayne/insane应该是这样的吗?有没有别的方法可以得到正确的路径?
我发现了这个:Get url without querystring,指出要使用GetLeftPart,这会导致相同的字符串。

ccrfmcuu

ccrfmcuu1#

也许不是最优雅的方法,但它适用于我现在能想到的所有情况:

var ps = new PathString("/someapi/wayne/insane?param=1234&ups=134");
var u = new Uri("http://localhost" + ps.Value);
u.LocalPath.Dump();

有趣的是,需要使用Value属性将PathString解析为string。

相关问题