C# .NET Uri中编码点的百分比
我正在尝试向web服务发送请求,该服务要求请求URI中的某些C# .NET Uri中编码点的百分比,c#,httpwebrequest,uri,C#,Httpwebrequest,Uri,我正在尝试向web服务发送请求,该服务要求请求URI中的某些字符按百分比编码为%2e。从.NET发送请求时遇到问题,因为当我构造Uri实例时,它将%2e字符替换为字符。如何解决这个问题,以服务所需的形式发送web请求 编辑:以下是我构建请求的方式: Uri uri = ...; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); request.Method = "GET"; request.Accept = "app
字符按百分比编码为%2e
。从.NET发送请求时遇到问题,因为当我构造Uri
实例时,它将%2e
字符替换为
字符。如何解决这个问题,以服务所需的形式发送web请求
编辑:以下是我构建请求的方式:
Uri uri = ...;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "GET";
request.Accept = "application/json";
request.UserAgent = "MyUserAgent";
我尝试了以下几点:
- 使用
UriTemplate.BindByName
- 构造
实例,然后使用Uri
尝试插入UriBuilder
字符%2e
Uri uri = "..."; UriBuilder builder = new UriBuilder(uri); builder.Path = builder.Path.Replace(".", "%2e"); uri = builder.Uri;
- 构造
,同时将Uri
构造函数参数设置为dontEscape
true
Uri
对象吗?你尝试了什么?(如中所示,您能告诉我们您是如何尝试的)@GuffaWebRequest.Create
有一个重载,它接受一个string
,但它所做的只是从该字符串创建一个Uri
对象并调用另一个构造函数。@Noctis我添加了更多细节,但这里真正的关键是创建一个实例,该实例在HTTP或HTTPS URI的路径组件中包含子字符串%2e
。我刚刚遇到了这个问题-幸运的是,我调用的服务不需要将点编码为%2e。但是我觉得很烦人,Uri
会自动执行此操作,而且似乎没有办法禁用它。