Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 (Deutsch) » SQL Anywhere Server - Programmierung » HTTP-Webdienste » Zugriff auf Webdienste mithilfe von Webclients » Webclient-Anwendungsentwicklung » Anforderungen und Empfehlungen für Webclient-Funktionen und -Prozeduren

 

Header der SOAP-Anforderung verwalten

Bei dem Header einer SOAP-Anforderung handelt es sich um ein XML-Fragment innerhalb des SOAP-Envelope. Während der SOAP-Vorgang und seine Parametern auch als RPC (Remote Procedure Call) betrachtet werden können, kann der Header einer SOAP-Anforderung verwendet werden, um Metadaten in einer spezifischen Anforderung oder Antwort zu übertragen. Die Header einer SOAP-Anforderung übertragen Metadaten wie etwa Autorisierungs- oder Sitzungskriterien.

Der Wert einer SOAPHEADER-Klausel muss ein gültiges XML-Fragment sein, das einem Headereintrag der SOAP-Anforderung entspricht. Es können mehrere Headereinträge für eine SOAP-Anforderung angegeben werden. Die gespeicherte Prozedur oder Funktion injiziert automatisch die Headereinträge der SOAP-Anforderung innerhalb eines SOAP-Headerelements (SOAP-ENV:Header). SOAPHEADER-Werte geben SOAP-Header an, die als statische Konstante deklariert oder dynamisch mithilfe des Parameterersetzungsmechanismus festgelegt werden können. Nachstehend wird ein Fragment aus einer SOAP-Anforderung gezeigt. Es enthält zwei XML-Header namens Authentication und Session.



<?xml version="1.0"?>
<SOAP-ENV:Envelope
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:m="HTTP://localhost:8082">
  <SOAP-ENV:Header>
    <Authentication xmlns="CustomerOrderURN">
      <userName pwd="none" mustUnderstand="1">
        <first>John</first>
        <last>Smith</last>
      </userName>
    </Authentication>
    <Session xmlns="SomeSession">123456789</Session>
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
    <m:SoapOperation>
      <m:intVariable>123</m:intVariable>
      <m:charVariable>data</m:charVariable>
    </m:SoapOperation>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

SOAP-Antwort-Header (zurückgegeben vom SOAP-Aufruf) werden für Prozeduren und Funktionen unterschiedlich verarbeitet. Bei Verwendung einer Funktion, was die flexibelste und empfohlene Methode darstellt, wird der gesamte SOAP-Antwortrahmen empfangen. Der Antwortrahmen kann dann mit openxml verarbeitet werden, um SOAP-Header und SOAP-Hauptteildaten zu extrahieren. Bei Verwendung einer Prozedur können SOAP-Antwort-Header nur durch einen Ersetzungsparameter extrahiert werden, der einer IN- oder INOUT-Variable zugeordnet ist. In einer SOAP-Prozedur sind maximal ein IN- oder INOUT-Parameter zulässig.

Eine Webdienstfunktion muss den SOAP-Antwortrahmen syntaktisch analysieren, um die Header-Einträge zu erhalten.

 Beispiele
 Einschränkungen