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();
}
私は、特にエンコード合格する必要がありますか?もしそうなら、どうですか?
問題をご理解いただきますよう、お願いします。
をエンコードするために、コードの下に使用することができます。 'application/x-www-form-urlencoded'の代わりに 'application/json'コンテンツタイプを使用する必要がありますか? – biker
application/jsonの代わりにapplication/x-www-form-urlencodedを使用することもできます –