次のようなメッセージを受け入れるように WSDL によって構成された SOAP サーバーを (PHP で) 構築しています。
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://my.awesome.namespace/">
<SOAP-ENV:Header>
<ns1:Header>
<ns1:APIKey>E4C5BDE0-48DC-543C-1CA3-8E55C63F8E60</ns1:APIKey>
<ns1:SiteID>111</ns1:SiteID>
</ns1:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:Heartbeat>
<ns1:Message>Hello world.</ns1:Message>
</ns1:Heartbeat>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAPServer でハートビート メッセージを処理するのに問題はありませんでした。問題なく$server->addFunction("Heartbeat");
動作します。ただし、エンクロージャーのコンテンツを処理できるようにしたい<ns1:Header>
ので、API キーとサイト ID を検証して、それらが本来あるべきものであることを確認できます。
私はここを見ました(そしてもちろん他の場所も)が、応答者は質問の要点を見逃しているようです. ヘッダー要素にアクセスして検証する方法を知っている人はいますか? ボディにメソッドを追加するのと同じように、ヘッダーに関数を追加しますか? ( $server->addFunction("Header");
?)
よろしくお願いします。