Mit HTTP-Nachrichtenflüssen arbeiten

Die Informationen in diesem Abschnitten unterstützen Sie bei der Verwendung von HTTP-Nachrichtenflüssen für die Interaktion mit Web-Services. Der folgende Abschnitt Web-Service-Szenarios erleichtert möglicherweise das Verständnis.

HTTPS
Hilfe bei der Verwendung von HTTPS finden Sie unter Implementierung der SSL-Authentifizierung.
Festlegen des HTTP-Statuscodes für eine Antwort
Der Standardwert für den HTTP-Statuscode lautet 200, was OK bedeutet. Dieser Wert kann auf verschieden Weise geändert werden:
  • Wenn die Eigenschaft HTTP-Standard-Header auf Basis von Eingabe oder Antwort generieren ausgewählt ist, durchsucht der HTTPAntwortknoten die HTTP-Antwortheader nach einem zu übergebenden Statuscode. Die Antwortheader werden vom HTTPAnforderungsknoten erstellt und entsprechen den HTTP-Headern, die als Teil der Antwort vom Web-Service bereitgestellt werden. Der HTTPAntwortknoten sucht den Statuscode und setzt seinen eigenen Statuscode auf diesen Wert.
  • Sie können den Statuscode im Feld 'Destination.HTTP.ReplyStatusCode' in der lokalen Umgebung festlegen. In diesem Fall überschreibt der festgelegte Wert die aus den Antwortheadern abgerufenen Einstellungen.

Sie können den Antwortstatus zwar auch im Spezialheader ('X-Original-HTTP-Status-Code' im Abschnitt 'HTTPReplyHeader' der Ausgabenachricht, wobei alle anderen Einstellungen überschrieben werden) in einem Rechenknoten festlegen. Es wird jedoch empfohlen, zu diesem Zweck den Inhalt von LocalEnvironment zu verwenden.

LocalEnvironment.Destination.HTTP.RequestIdentifier verwenden
Wenn der HTTPEmpfangsknoten eine Eingabeanforderungsnachricht empfängt, setzt er das LocalEnvironment-Feld 'Destination.HTTP.RequestIdentifier' auf einen eindeutigen Wert, der den Web-Service-Client, von dem die Anforderung gesendet wurde, identifiziert. Sie können auf diesen Wert verweisen und ihn bei Bedarf in einem anderen Verzeichnis speichern.

Wenn Sie beispielsweise ein Nachrichtenflusspaar entwerfen, das mit einer bestehenden WebSphere MQ-Anwendung interagiert (wie in Broker ruft bestehenden Web-Service auf beschrieben), können Sie diesen Wert im Anforderungsnachrichtenfluss speichern und ihn im Antwortnachrichtenfluss wiederherstellen, um sicherzustellen, dass die Antwort an den richtigen Client gesendet wird. In diesem Fall dürfen Sie die Daten nicht ändern und müssen die Daten als BLOB erhalten.

Der HTTPAntwortknoten extrahiert diesen Wert aus LocalEnvironment und erstellt die Antwort, so dass sie an den bestimmten Client gesendet wird.

Wenn Sie einen Nachrichtenfluss entwerfen, der sowohl einen HTTPEmpfangs- als auch HTTPAntwortknoten enthält, wird der Wert in LocalEnvironment vom HTTPEmpfangsknoten festgelegt, vom HTTPAntwortknoten jedoch nicht verwendet. Falls Ihr Nachrichtenfluss beide Knoten und einen Rechenknoten im selben Datenfluss enthält, müssen Sie deshalb die Baumstruktur 'LocalEnvironment' nicht einfügen, wenn Sie angeben, welche Komponenten der Nachrichtenbaumstruktur vom Rechenknoten aus der Eingabe- in die Ausgabenachricht kopiert werden (Eigenschaft Rechenmodus).

URL des HTTPAnforderungsknoten URL dynamisch festlegen
Sie können die Eigenschaft Default Web service URL (URL für Standard-Web-Service) im HTTPAnforderungsknoten angeben, um die Ziel-URL für eine Web-Service-Anforderung festzulegen. Sie können vor dem HTTPAnforderungsknoten im Nachrichtenfluss einen Rechenknoten konfigurieren, um den in der Eigenschaft angegebenen Wert zu überschreiben. Schreiben Sie einen ESQL-Code, der eine URL-Zeichenfolge in 'LocalEnvironment.Destination.HTTP.RequestURL' speichert. Diese wird vom HTTPAnforderungsknoten abgerufen und anstelle des Wertes für die Knoteneigenschaft verwendet.

Sie können den Anforderungs-URL zwar auch im Spezialheader 'X-Original-HTTP-URL' im Abschnitt 'HTTPRequestHeader' der Anforderungsnachricht in einem Rechenknoten festlegen (wodurch alle anderen Einstellungen überschrieben werden). Es wird jedoch empfohlen, zu diesem Zweck den Inhalt von LocalEnvironment zu verwenden.

Eigenschaft HTTP-Standard-Header auf Basis der Antwort generieren für den HTTPAntwortknoten festlegen
Wenn Sie das Markierungsfeld HTTP-Standard-Header auf Basis der Antwort generieren im Eigenschaftendialog des HTTPAntwortknotens aktivieren, fügt der Knoten eine Mindestanzahl von Headern in die Antwort, die an den Web-Service-Client gesendet wird, ein. Außerdem fügt er alle Header ein, die im Abschnitt 'HTTPResponseHeader' in der als Eingabe empfangenen Nachricht angegeben sind.

Der HTTPAntwortknoten schreibt den Header 'Content-Length' (Inhaltslänge) immer neu (auch wenn das Markierungsfeld HTTP-Standard-Header auf Basis von Eingabe oder Antwort generieren inaktiviert wurde), um sicherzustellen, dass dessen Inhalt korrekt ist.

Alle anderen Header werden aus 'HTTPResponseHeader' kopiert. Falls kein Header 'Content-Type' vorhanden ist, wird er mit dem Wert text/xml; charset=utf-8 hinzugefügt.

Wenn in der vom HTTPAntwortknoten empfangenen Nachricht ein Abschnitt 'HTTPReplyHeader' enthalten war und eine Verbindung mit dem Ausgabeterminal des HTTPAntwortknotens besteht, wird der Abschnitt 'HTTPReplyHeader' mit allen geänderten oder hinzugefügten Werten aktualisiert.

Eigenschaft HTTP-Standard-Header auf Basis der Eingabe generieren für den HTTPAnforderungsknoten festlegen
Wenn Sie das Markierungsfeld HTTP-Standard-Header auf Basis der Eingabe generieren im Eigenschaftendialog des HTTPAnforderungsknotens aktivieren, fügt der Knoten eine Mindestanzahl von Headern in die Anforderung, die an den Server gesendet wird, ein. Außerdem fügt er alle Header ein, die im Abschnitt 'HTTPInputHeader' in der als Eingabe empfangenen Nachricht angegeben sind.

Der HTTPAnforderungsknoten überschreibt immer den Header 'Content-Length' (auch wenn das Markierungsfeld HTTP-Standard-Header auf Basis der Eingabe generieren inaktiviert wurde), um sicherzustellen, dass dessen Inhalt korrekt ist.

Alle Header werden aus 'HTTPInputHeader' kopiert:

  • Der Header 'Host', der entweder auf Basis der Anforderungs-URL oder des Abschnitts 'HTTPRequestHeader' der eingehenden Nachricht festgelegt wird
  • Der Header 'Content-Length', der in allen Fällen neu geschrieben wird

Einige Header werden mit Standardwerten generiert, falls sie in den eingehenden HTTPRequest- oder HTTPInput-Headern nicht gefunden werden:

  • 'SOAPAction', der auf "" gesetzt wird
  • 'Host', der auf Basis der für diese Nachricht verwendeten Anforderungs-URL festgelegt wird. Dabei kann es sich um den Wert von
  • 'Content-Type' handeln, der auf text/xml; charset=utf-8 gesetzt ist.

Jeder Header im Abschnitt 'HTTPRequestHeader' in der vom Knoten empfangenen Nachricht überschreibt den Header mit demselben Namen, der auch im Abschnitt 'HTTPInputHeader' in derselben Nachricht enthalten ist. Wenn die empfangene Nachricht den Abschnitt 'HTTPRequestHeader' enthält, wird der Abschnitt 'HTTPRequestHeader' mit allen geänderten oder hinzugefügten Werten aktualisiert.

Zugehörige Konzepte
WebSphere MQ Web Services Transport
WSDL
Zugehörige Tasks
Einen Nachrichtenfluss erstellen
Implementieren
Ergebnisse der Implementierung überprüfen
Zugehörige Verweise
HTTPEmpfangsknoten
HTTPAntwortknoten
HTTPAnforderungsknoten
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2005 Letzte Aktualisierung: Nov 17, 2005
ac20450_