Я довольно новичок в 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>
Итак, из ответа мне нужно получитьзначение ответа, так как оно будет использоваться в моем приложении для других запросов.Любая помощь будет оценена, спасибо