Ich versuche, einige Unicode-Daten mithilfe von HTTP-Anforderungsnachricht zu buchen. Irgendwie verursacht Content Encoding ein Problem. Ich setze keine Codierung explizit in meinem Code.Veröffentlichen von Unicode-Daten mit HttpClient
Zum Beispiel versuche ich, 'รั ค' & auf Client-Seite zu senden, wird es als 'à £ à £ ± à' empfangen.
Beispielcode
var cookieContainer = new CookieContainer();
using (var handler = new HttpClientHandler() { CookieContainer = cookieContainer, })
using(var httpClient = new HttpClient(handler)){
//set all cookies
foreach (var obj in configurationData["request_cookies"])
{
var cookie = ((JProperty)(obj));
cookieContainer.Add(new Uri(configurationData["request_cookie_base_url"].ToString()),
new Cookie(cookie.Name, HttpUtility.UrlEncode(cookie.Value.ToString())));
}
var request = new HttpRequestMessage();
request.Method = HttpMethod.Post;
request.RequestUri = new Uri(configurationData["form_url"].ToString());
//set all request headers
foreach (var obj in configurationData["request_headers"])
{
var cookie = ((JProperty) (obj));
request.Headers.Add(cookie.Name, cookie.Value.ToString());
}
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded"));
//get request content data from configurationData as keyvalue pair
var contentValue = parsedCrmConfigurationData["form_data_template"]
.ToObject<Dictionary<string, string>>();
request.Content = new FormUrlEncodedContent(contentValue);
var response = httpClient.SendAsync(request).Result;
response.EnsureSuccessStatusCode();
}
Benötige ich speziell codiert, bestehen? Wenn ja, wie?
Bitte helfen Sie mir, das Problem zu verstehen.
Ich möchte zu kodieren Webformular Post-Anforderung mit C# -Code simulieren. Sind Sie sicher, dass ich den Inhaltstyp "application/json" anstelle von "application/x-www-form-urlencoded" verwenden soll? – biker
können Sie auch application/x-www-form-urlencoded anstelle von application/json verwenden –