Arhn - архитектура программирования

Форматирование XML в HttpWebResponse в C#

У меня есть проект .NET, который отправляет данные на внешний веб-сервер в виде объекта SOAP через HTTP POST. Это делается с помощью объекта HttpWebRequest. Я получаю ответ от веб-сервера, который я перехватываю с помощью объекта HttpWebResponse. Этот объект ответа также представляет собой XML, окруженный конвертом SOAP.

Проблема в том, что когда я беру ответ и вывожу его на экран с помощью ToString, он, по-видимому, уничтожает все теги и просто объединяет их в одну строку.

Как я могу вывести возвращенный XML с веб-сервера, не удаляя все форматирование/теги XML?

Вот код, который я использую:

XmlDocument XMLResponse = null;
HttpWebRequest objHttpWebRequest;
HttpWebResponse objHttpWebResponse = null;

Stream objRequestStream = null;
Stream objResponseStream = null;

XmlTextReader objXMLReader;
objHttpWebRequest = (HttpWebRequest)WebRequest.Create(v_strURL);

try
{
    byte[] bytes;
    bytes = System.Text.Encoding.ASCII.GetBytes(v_objXMLDoc.InnerXml);
    objHttpWebRequest.Method = "POST";
    objHttpWebRequest.ContentLength = bytes.Length;
    objHttpWebRequest.ContentType = "text/xml; encoding='utf-8'";
    objHttpWebRequest.Headers.Add("SOAPAction", "Some URL/"+SoapAction);

    NetworkCredential nc = new NetworkCredential(username, password);

    objHttpWebRequest.Credentials = nc;

    objRequestStream = objHttpWebRequest.GetRequestStream();
    objRequestStream.Write(bytes, 0, bytes.Length);
    objRequestStream.Close();

    objHttpWebResponse = (HttpWebResponse)objHttpWebRequest.GetResponse();

    if (objHttpWebResponse.StatusCode == HttpStatusCode.OK)
    {
        objResponseStream = objHttpWebResponse.GetResponseStream();
        objXMLReader = new XmlTextReader(objResponseStream);

        XmlDocument xmldoc = new XmlDocument();
        xmldoc.Load(objXMLReader);
        XMLResponse = xmldoc;
        objXMLReader.Close();
    }

Я получаю ответ, как показано ниже. Мыльная оболочка имеет только теги xml, другие буквы имеют разные символы.

 <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><ns1:getHotelDetail xsi:type="xsd:string" xmlns:ns1="http://axis.frontend.hydra.hotelbeds.com">&lt;HotelDetailRS xmlns="http://www.hotelbeds.com/schemas/2005/06/messages" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.hotelbeds.com/schemas/2005/06/messages HotelDetailRS.xsd" echoToken="DummyEchoToken"&gt;&lt;AuditData&gt;&lt;ProcessTime&gt;570&lt;/ProcessTime&gt;&lt;Timestamp&gt;2015-03-20 07:50:07.272&lt;/Timestamp&gt;&lt;RequestHost&gt;54.169.51.224&lt;/RequestHost&gt;&lt;ServerName&gt;FORM&lt;/ServerName&gt;&lt;ServerId&gt;FO&lt;/ServerId&gt;&lt;SchemaRelease&gt;2005/06&lt;/SchemaRelease&gt;&lt;HydraCoreRelease&gt;2015.01.14&lt;/HydraCoreRelease&gt;&lt;HydraEnumerationsRelease&gt;N/A&lt;/HydraEnumerationsRelease&gt;&lt;MerlinRelease&gt;0&lt;/MerlinRelease&gt;&lt;/AuditData&gt;&lt;Hotel xsi:type="ProductHotel"&gt;&lt;Code&gt;52317&lt;/Code&gt;&lt;Name&gt;Hampton Inn &amp;amp; Suites Montreal&lt;/Name&gt;&lt;DescriptionList&gt;&lt;Description type="HotelDescription" languageCode="ENG" languageName="Ingles"&gt;where sophistication and culture meet...welcome to the Hampton Inn &amp;amp; Suites by Hilton Montreal (Dorval). At the Hampton Inn &amp;amp; Suites by Hilton&amp;#8482; hotel in Montreal (Dorval), we&amp;apos;re proud of our city. Caf&amp;#233;s, theatres and universities dot this international city, giving Montreal a blend of big-city sophistication and old-world charm. Montreal makes visitors comfortable but also engages them with plenty to do and see. In short, the city remains a delightful blend of old and new. Within just kilometers of the Hampton Inn &amp;amp; Suites by Hilton&amp;#8482; hotel in Montreal (Dorval), you&amp;apos;ll find lovely golf courses, restaurants and shopping. Plus, driving into downtown Montreal takes a mere 15 minutes. The Casino Botanical Gardens and old Montreal are near our hotel in Montreal (Dorval), too. So whether you&amp;apos;re in town to soak up some culture or perhaps see the many metropolitan charms of Montreal, you&amp;apos;ll soon discover that the Hampton Inn &amp;amp; Suites by Hilton hotel in Montreal (Dorval) is where sophistication and culture meet. services &amp;amp; amenities Here at the Hampton Inn &amp;amp; Suites by Hilton hotel in Montreal (Dorval), we&amp;apos;re passionate about taking good care of you. That&amp;apos;s why we offer a broad range of services and amenities to make your stay exceptional. Whether you&amp;apos;re planning a corporate meeting or need accommodations for a family reunion or your child&amp;apos;s sporting group, we&amp;apos;re delighted to offer you easy planning and booking tools to make the process quick and organized.* Meetings &amp;amp; Events * Local Restaurant Guide&lt;/Description&gt;&lt;/DescriptionList&gt;&lt;ImageList&gt;&lt;Image&gt;&lt;Type&gt;GEN&lt;/Type&gt;&lt;Order&gt;8&lt;/Order&gt;&lt;Description&gt;General view&lt;/Description&gt;&lt;Url&gt;http://www.hotelbeds.com/giata/05/052317/052317a_hb_a_008.jpg&lt;/Url&gt;&lt;/Image&gt;&lt;Image&gt;&lt;Type&gt;GEN&lt;/Type&gt;&lt;Order&gt;9&lt;/Order&gt;&lt;Description&gt;General view&lt;/Description&gt;&lt;Url&gt;http://www.hotelbeds.com/giata/05/052317/052317a_hb_a_009.jpg&lt;/Url&gt;&lt;/Image&gt;&lt;Image&gt;&lt;Type&gt;GEN&lt;/Type&gt;&lt;Order&gt;10&lt;/Order&gt;&lt;Description&gt;General view&lt;/Description&gt;&lt;Url&gt;http://www.hotelbeds.com/giata/05/052317/052317a_hb_a_010.jpg&lt;/Url&gt;&lt;/Image&gt;&lt;Image&gt;&lt;Type&gt;GEN&lt;/Type&gt;&lt;Order&gt;11&lt;
19.03.2015

  • К сожалению, это не показывает, как вы используете XMLResponse, а только то, как вы устанавливаете его значение. 19.03.2015
  • XMLResponse возвращается из этой функции как XmlDocument . Я использую это для чтения xml в других функциях. 20.03.2015

Ответы:


1

Не слишком уверен, что вы делаете с вашим XMLResponse, поскольку он не опубликован, но чтобы получить строковую версию ответа с форматированием, я бы попробовал следующее:

var stringifed = XMLResponse.outerXml;

https://stackoverflow.com/a/13026108/2870218

19.03.2015
  • на самом деле я получаю ответ, но теги xml в разных символах. Я обновил ответ. 20.03.2015
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..