我想读取来自.NET WinForms应用程序的SOAP请求。
请求是:
<?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>
<HotelPricesRQ xmlns="http://zelsoft.ru/">
<HotelPricesRequest>
<Requestor Login="ZLS" Password="DE52F10D5089096E5D83CA559153D64824AAB0B4" />
<Conditions>
<Condition CityID="0" CountryID="0" HotelID="0" AccommodationID="0" RoomCategoryID="0" RoomTypeID="0">
<Created Begin="2013-10-31T00:00:00" End="2013-10-31T23:59:00+04:00" />
</Condition>
</Conditions>
</HotelPricesRequest>
</HotelPricesRQ>
</soap:Body>
</soap:Envelope>
那么如何获取请求者的登录名、密码和创建开始日期呢?我实际上已经构建了响应,我们已经对其进行了测试,当他们向我发送请求时,他们得到了响应。我只是发送响应而不阅读请求,但我必须阅读它并登录不同的用户并发送不同的响应。因此,我将非常感谢我上面发布的请求的真实示例。
我不知道
为什么我没有写出我当时为阅读请求而得到的解决方案,但在这里,以防有人需要它:
$soap_request = file_get_contents("php://input");
然后我只是使用 PHP XML 解析器函数解析它,如下所示:
$parser=xml_parser_create();
xml_parse_into_struct($parser,$soap_request,$request_array);
xml_parser_free($parser);
现在,您将$request_array
中的数据作为数组。
还可以使用 SimpleXMLElement
类从请求中获取数据。