2

我想阅读来自 .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>

那么如何获取请求者的登录名、密码和创建开始日期呢?我实际上已经建立了响应,我们已经对其进行了测试,当他们向我发送请求时,他们得到了响应。我只是发送响应而不阅读请求,但我必须阅读它并登录不同的用户并发送不同的响应。因此,非常感谢我在上面发布的请求的真实示例。

4

1 回答 1

2

我不知道为什么我没有写出当时阅读请求的解决方案,但在这里,以防有人需要它:

$soap_request = file_get_contents("php://input");

然后我只是用 PHP XML Parser Functions 解析它,如下所示:

$parser=xml_parser_create();
xml_parse_into_struct($parser,$soap_request,$request_array);
xml_parser_free($parser);

现在您将数据$request_array作为数组保存了。

您还可以使用 TheSimpleXMLElement类从请求中获取数据。

于 2020-10-06T08:14:18.293 回答