2017-09-18 6 views
0

HTTPリクエストメッセージを使用していくつかのユニコードデータを投稿しようとしています。何らかの形でコンテンツエンコーディングが問題を引き起こしています。私は自分のコードに明示的にエンコーディングを設定していません。HttpClientを使用してユニコードデータを投稿する


たとえば、私は 'รัค' &を「รั¸¸」としてクライアント側に送信しようとしています。


サンプルコード

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(); 
} 


私は、特にエンコード合格する必要がありますか?もしそうなら、どうですか?
問題をご理解いただきますよう、お願いします。

答えて

0

私はC#のコードを使用してWebフォームのPOSTリクエストをシミュレートしたいコンテンツ

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

をエンコードするために、コードの下に使用することができます。 'application/x-www-form-urlencoded'の代わりに 'application/json'コンテンツタイプを使用する必要がありますか? – biker

+0

application/jsonの代わりにapplication/x-www-form-urlencodedを使用することもできます –

関連する問題