不带参数名的C#-Uribuilder

不带参数名的C#-Uribuilder,c#,.net-core,C#,.net Core,我刚刚开始使用.netcore 我需要创建一个url,我遇到了UriBuilder,但是我只能看到将其与命名参数一起使用的示例,例如:localhost?value=abc&other=def,但是我希望构造时不使用参数名称,因此: localhost/abc/def/ 这是可能的吗,我在想可能是下面这样的事情: var request = new HttpRequestMessage(); request.RequestUri = new Uri(_myUrl); request.Method

我刚刚开始使用.netcore

我需要创建一个url,我遇到了
UriBuilder
,但是我只能看到将其与命名参数一起使用的示例,例如:
localhost?value=abc&other=def
,但是我希望构造时不使用参数名称,因此:

localhost/abc/def/

这是可能的吗,我在想可能是下面这样的事情:

var request = new HttpRequestMessage();
request.RequestUri = new Uri(_myUrl);
request.Method = HttpMethod.Get;

var uriBuilder = new UriBuilder(request.RequestUri);
var query = HttpUtility.ParseQueryString(uriBuilder.Query);
query[0] = "abc"

感谢您的帮助。

这不是UriBuilder或URI的工作方式。您试图更改/设置的是URI的名称。这是使用
Path
属性或使用
UriBuilder
的相关构造函数完成的。您的示例显示了如何更改/设置查询字符串(基本上是键值对)

如何创建路径不属于UriBuilder类的事务(请参见@Irdis关于选项的注释)

基本上,您可以使用自己选择的字符串操作手动创建路径,然后将其指定给
路径
属性,例如:

var b = new UriBuilder(...);
// Set other properties to your requirements
b.Path = "/the/path/ optional with spaces and other stuff/";
然后可以使用
UriBuilder.Uri
属性获取完整的Uri,或者使用
UriBuilder.ToString()
方法获取正确转义的Uri。对于上面的示例,类似于:

http://localhost/the/path/%20optional%20with%20spaces%20and%20other%20stuff/

这不是UriBuilder或URI的工作方式。您试图更改/设置的是URI的名称。这是使用
Path
属性或使用
UriBuilder
的相关构造函数完成的。您的示例显示了如何更改/设置查询字符串(基本上是键值对)

如何创建路径不属于UriBuilder类的事务(请参见@Irdis关于选项的注释)

基本上,您可以使用自己选择的字符串操作手动创建路径,然后将其指定给
路径
属性,例如:

var b = new UriBuilder(...);
// Set other properties to your requirements
b.Path = "/the/path/ optional with spaces and other stuff/";
然后可以使用
UriBuilder.Uri
属性获取完整的Uri,或者使用
UriBuilder.ToString()
方法获取正确转义的Uri。对于上面的示例,类似于:

http://localhost/the/path/%20optional%20with%20spaces%20and%20other%20stuff/

没有收到你的问题,你能举例说明吗?这可能有助于你通过
request.RequestUri.Segments
获得问题,你能举例说明吗?这可能有助于你通过
request.RequestUri.Segments