Получить поле ответа из SOAP-запроса с использованием HttpClient - PullRequest
0 голосов
/ 08 июня 2018

Я довольно новичок в SOAP-запросах.Я выполнил запрос POST, который работает с использованием HTTPClient, однако я не могу понять, как извлечь поле ответа "1F833967EB46324480005B68BCAAAF8900" .

Мой код:

 public async Task<string> CreateSoapEnvelop(string userId)
        {
            string soapString = @"<?xml version=""1.0"" encoding=""utf-8""?>
            <soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">
                <soap:Body>
                 <Logon_With_String xmlns=""http://www.syspro.com/ns/utilities/"">
                  <OperatorCode>" + Settings.UserId + @"</OperatorCode>
                  <OperatorPassword></OperatorPassword>
                  <CompanyId>TIH</CompanyId>
                  <CompanyPassword></CompanyPassword>
                  <LanguageCode>AUTO</LanguageCode>
                  <LogLevel>ldNoDebug</LogLevel>
                  <EncoreInstance>EncoreInstance_0</EncoreInstance>
                  <XmlIn></XmlIn>
                  </Logon_With_String>
                </soap:Body>
            </soap:Envelope>";

            HttpResponseMessage response = await PostXmlRequest("http://url/sysprowebservices/utilities.asmx", soapString);
            string content = await response.Content.ReadAsStringAsync();

            return content;

        }

        public static async Task<HttpResponseMessage> PostXmlRequest(string baseUrl, string xmlString)
        {
            using (var httpClient = new HttpClient())
            {
                var httpContent = new StringContent(xmlString, Encoding.UTF8, "text/xml");
                httpContent.Headers.Add("SOAPAction", "http://url/utilities/Logon_With_String");

                return await httpClient.PostAsync(baseUrl, httpContent);
            }
        }

Ответ

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <Logon_With_StringResponse xmlns="http://url/">
            <Logon_With_StringResult>1F833967EB46324480005B68BCAAAF8900  </Logon_With_StringResult>
        </Logon_With_StringResponse>
    </soap:Body>
</soap:Envelope>

Итак, из ответа мне нужно получитьзначение ответа, так как оно будет использоваться в моем приложении для других запросов.Любая помощь будет оценена, спасибо

...