.net HttpWebRequest url参数中的URL编码

时间:2016-10-13 17:38:36

标签: .net

HttpWebRequest类是否自动编码URL参数? 我创建了一个URL为“http://test.com/124?param=%2Ea”的HttpWebRequest。 当我捕获一个小提琴曲线时,我看到HTTP get请求变为“http://test.com/124?param=.a”,即“%2E”变为“。”。

我已经尝试在我的代码中设置调试器,我确信我在HttpWebRequest中传递的url是“http://test.com/124?param=%2Ea” 你知道HttpWebRequest是否会自动执行此操作吗?我该如何禁用它?

1 个答案:

答案 0 :(得分:0)

问题似乎是,虽然.是与Uri等效的网址编码,但您希望请求网址与您输入的方式完全相同,对吗?

似乎/不允许转义斜杠.或点app.config。显然这是出于向后兼容的目的。您可以尝试this SO answer上提到的解决方法,该解决方案由MS自己在this bug report on MS Connect上的解决方案支持

他们建议将以下代码放在web.config<uri> <schemeSettings> <add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes" /> </schemeSettings> </uri> 文件中:

{{1}}