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=xml_parser_create();
xml_parse_into_struct($parser,$soap_request,$request_array);
xml_parser_free($parser);

これで、データが$request_array配列として取得されました。

SimpleXMLElementクラスを使用して、リクエストからデータを取得することもできます。

于 2020-10-06T08:14:18.293 に答える