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