我可以阻止Uri在WebRequest.Create中取消编码吗?

Pau*_*aul 3 c# uri httpwebrequest

代码本身并不复杂,它只是不能正常工作:

Uri uri = new Uri("https://www.google.com/webmasters/tools/feeds/sites/http%3A%2F%2Fwww.mydomain.co.uk%2F");
WebRequest.Create(uri);
Run Code Online (Sandbox Code Playgroud)

我从服务器上得到一个"错误请求",经过多次挖掘,发现Uri正在变成

https://www.google.com/webmasters/tools/feeds/sites/http%3A//www.mydomain.co.uk/

这不是我要求的,所以它有一个旋转

有办法阻止这个吗?

Tr1*_*tan 5

在此处找到答案:https://stackoverflow.com/a/10415482/159341

根据Microsoft Connect上此问题的错误报告,此行为是设计使然,但您可以通过将以下内容添加到app.config或web.config文件来解决此问题:

<uri>
  <schemeSettings>
    <add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes" />
  </schemeSettings>
</uri>
Run Code Online (Sandbox Code Playgroud)

(由于WebRequest.Create(string)只委托给WebRequest.Create(Uri),无论您调用哪种方法,都需要使用此解决方法.)