1. Отправляю XML-документ через POST запрос (протокол http) на один сервис - получаю ответ. Делаю парсинг и извлекаю данные с этого ответа.
var request = new HttpRequestMessage();
// настройка параметров сообщения (headers, uri и т.л. не важно)
var requestXmlBody = CreateAuthorizationXmlDocument(email, password);
request.Content = new StringContent(requestXmlBody.OuterXml, Encoding.UTF8, "application/soap+xml");
var client = new HttpClient();
var response = await client.SendAsync(request);
var responseStr = await response.Content.ReadAsStringAsync();
var responseXml = new XmlDataDocument();
responseXml.LoadXml(responseStr);
MessageBox.Show(responseXml.OuterXml);
var tokens = responseXml.GetElementsByTagName("token");
Это работает идеально, всё отлично. Пытаюсь по этому принципу отправить следующий запрос, который уже использует JSON.
var request = new HttpRequestMessage();
// ...
var requestJsonBody = CreateSomeFieldObtainingJsonDocument();
request.Content = new StringContent(requestJsonBody.ToString(), Encoding.UTF8, "application/json");
var client = new HttpClient();
var response = await client.SendAsync(request);
var responseStr = await response.Content.ReadAsStringAsync();
MessageBox.Show(responseStr);
var responseJson = (JObject)JsonConvert.DeserializeObject(responseStr);
addressFields = responseJson["someField"];
thisClassField= (string) responseJson.Property("someField").Value;
Проблема:
во втором случае получаю данные в непонятной кодировке, которое JObject не может пропарсить. Как отладчик Visual Studio, так и вывод данных через MessageBox показывают просто набор иероглифов. Хотя
просматриваю отправленные и полученные пакеты через Fiddler - всё отлично. Получаю данные в формате UTF-8, которые Fiddler нормально считывает и которые имеют то самое поле, которое мне нужно. Как мне решить эту проблему?