Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to read incoming SOAP request in php

I want to read the SOAP request which is coming from a .NET WinForms application.

The request is:

<?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>

So how to get the Requestor's Login, Password and the Creattion Begin Date? I have actually build the response, we've test it and when they send me the request they got the response. I'm just sending the responce without reading the request, but I have to read it and log in diffrent users and send different response. So a real example with the request I've posted above will be much much appreciated.

like image 778
ILiyan Dimitrov Avatar asked Jan 18 '26 00:01

ILiyan Dimitrov


1 Answers

I don't know why I didn't write the solution I got back then for reading the request, but here it is, in case someone needs it:

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

Then I just parse it with the PHP XML Parser Functions like so:

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

Now you have the data in the $request_array as an array.

You can also use The SimpleXMLElement class to get the data from the request.

like image 190
ILiyan Dimitrov Avatar answered Jan 19 '26 13:01

ILiyan Dimitrov



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!