@Multigame

Как задать кодировку ответа для HttpClient?

Добрый день!
Отправляю POST запросы на сервер HttpClient'ом. Запрос и ответ в кодировке win-1251, в ответе есть кириллица, которая вся превращается в знаки вопроса. Подскажите, как правильно указать кодировку принимаемого контента(ответа сервера)?

using (var client = new HttpClient())
                 {
                    gate.addHeaders(client);
                    client.DefaultRequestHeaders.Pragma.Add(new NameValueHeaderValue("no-cache"));
                    var content = new StringContent(body, gate.getEncode(), gate.getMediaType()); // тело запроса
                    var result = await client.PostAsync(uri, content); // запрос
                    var str = await result.Content.ReadAsStringAsync();
}
  • Вопрос задан
  • 1366 просмотров
Пригласить эксперта
Ответы на вопрос 2
@fomindp
.NET программист, фрилансер.
Здравствуйте!
Вот такой код должен решить проблему:
using (var client = new HttpClient())
{
	gate.addHeaders(client);
	client.DefaultRequestHeaders.Pragma.Add(new NameValueHeaderValue("no-cache"));
	var content = new StringContent(body, gate.getEncode(), gate.getMediaType()); // тело запроса
	var result = await client.PostAsync(uri, content); // запрос
	var buffer = await result.Content.ReadAsByteArrayAsync();
	var byteArray = buffer.ToArray();
	var responseString = Encoding.GetEncoding(1251).GetString(byteArray, 0, byteArray.Length);
}
Ответ написан
Nipheris
@Nipheris Куратор тега C#
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы