Ich verwende die Httpclient in System.Net.Http Anfragen an einen Web-Service zu machen, wie unten:Warum codiert System.Net.Http HttpClient meine Anfrage-URL?
using (var client = new HttpClient())
{
using (var response = client.GetAsync(url).Result)
{
var result = response.Content.ReadAsStringAsync().Result;
}
}
Ich habe eine Sandbox-Anwendung und eine Live-Anwendung. Die Sandbox-Anwendung hat den gleichen Code (in einem gemeinsamen Repository), der funktioniert, aber wenn client.GetAsync(url).Result
in der Live-Anwendung aufgerufen wird, zeigt mir Fiddler aus irgendeinem Grund, dass die angeforderte URL codiert wurde, was die Anfrage durcheinander bringt.
angeforderte URL soll wie folgt aussehen:
/advert?paginate=1&page=1&language=en&filters[updated_at][ge]=2016-03-21%2012:19:05
aber endet wie folgt aussehen:
/advert?paginate=1&page=1&language=en&filters%5Bupdated_at%5D%5Bge%5D=2016-03-21%2012:19:05
Jede Idee, warum? Danke
N.B. Im die Microsoft.Net.Http Bibliothek von Nuget in .NET Framework 4,5
https://en.wikipedia.org/wiki/Percent-encoding – CSharpie
das zweite URL eine völlig legitime Art und Weise ist die erste zu repräsentieren. Es klingt, als ob der Dienst, der die Anfrage erhält, ein Problem mit korrekt codierten URLs hat. – JLRishe
@CSharpie: Ich verstehe den Punkt der URL-Codierung, aber die unerwartete Codierung von (speziell) den eckigen Klammern ist, wo ich verwirrt bin. Vor allem, weil der gleiche Code in einem anderen Projekt anders funktioniert. – Jimbo