HttpWebResponse.GetResponseStream преобразует <вместо <и т. Д. - PullRequest
0 голосов
/ 28 марта 2019

HttpWebResponse.GetResponseStream преобразует <вместо <и т. Д. Я использую HttpWebRequest для извлечения данных XML из веб-службы.Веб-API </p>

Мой тип контента: request.ContentType = "application / json";

Проблема заключается в том, что при извлечении текста все внутри конверта, ответа, преобразуется.Итак, <> являются <и> и т. Д.

Как получить данные и сохранить символы меньше / больше, чем для действительного XML?

спасибо!

метод replace преобразует все специальные символы между xml <> envelop, которые я не хочу

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "application/json";
//request.ContentType = "text/xml;charset=utf-8";

request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
request.Method = HttpVerb;
request.Accept = "application/xml";
if (ObjData != null)
{
    var Serialized = JsonConvert.SerializeObject(ObjData);
    using (StreamWriter sw = new StreamWriter(request.GetRequestStream()))
    {
        sw.Write(Serialized);
    }
}
else
{
    request.ContentLength = 0;
}
HttpWebResponse httpWebResponse = request.GetResponse() as HttpWebResponse;

using (StreamReader sr = new StreamReader(httpWebResponse.GetResponseStream()))
{
    if (httpWebResponse.StatusCode == HttpStatusCode.Unauthorized || httpWebResponse.StatusCode == HttpStatusCode.InternalServerError || httpWebResponse.StatusCode == HttpStatusCode.NotAcceptable)
    {
        strResponse = httpWebResponse.StatusDescription;
    }
    else if (httpWebResponse.StatusCode != HttpStatusCode.OK)
    {
        strResponse = String.Format("POST failed. Received HTTP {0}", httpWebResponse.StatusCode);
    }
    else
    {
        strResponse = sr.ReadToEnd();// this line creating the wrong xml
        strResponse = XMLDecode(strResponse);
    }
}

1 Ответ

1 голос
/ 28 марта 2019

эти 3 строки кода решили мою проблему:

strResponse = sr.ReadToEnd (); // здесь это создает проблему при преобразовании <диаграммы с <etc </p>

XmlDocument xmlDocument =new XmlDocument (); // эта 3-я строка решила проблему xml

xmlDocument.LoadXml (strResponse);

strResponse = xmlDocument.InnerText;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...