2017-09-18 2 views
0

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.

Antwort

0

können Sie unter Code benutzen, um Ihre Inhalte

private static HttpContent getencodedContent(string jsonString) 
     { 
      var cont = new StringContent(jsonString, Encoding.UTF8, "application/json"); 
      return cont; 
     } 
+0

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

+0

können Sie auch application/x-www-form-urlencoded anstelle von application/json verwenden –