0
我使用HttpClient的在System.Net.Http发出请求到如下Web服务:为什么System.Net.Http HttpClient编码我的请求URL?
using (var client = new HttpClient())
{
using (var response = client.GetAsync(url).Result)
{
var result = response.Content.ReadAsStringAsync().Result;
}
}
我有一个沙箱应用和现场应用。沙盒应用程序具有相同的代码(在共享存储库中),但工作正常,但在实时应用程序中调用client.GetAsync(url).Result
时,由于某种原因,Fiddler向我显示请求的URL已被编码,从而使请求混乱。
请求的URL应该是这样的:
/advert?paginate=1&page=1&language=en&filters[updated_at][ge]=2016-03-21%2012:19:05
但最终这样看:
/advert?paginate=1&page=1&language=en&filters%5Bupdated_at%5D%5Bge%5D=2016-03-21%2012:19:05
任何想法,为什么?谢谢
N.B.即时消息在.NET框架4.5
https://en.wikipedia.org/wiki/Percent-encoding – CSharpie
这第二url代表第一个完全合法的方式。这听起来像是,如果有的话,接收请求的服务在正确编码的URL中存在问题。 – JLRishe
@CSharpie:我明白网址编码的重点,但是(特别是)方括号的意外编码是我感到困惑的地方。特别是因为相同的代码在另一个项目中的作用不同。 – Jimbo