Nur DataPower-API-Gateway

Anhänge in einem message -Objekt bearbeiten

Das Objekt message stellt APIs und Eigenschaften zum Bearbeiten von Nachrichtenanhängen bereit.

Wenn die Assembly eine Parserrichtlinie enthält, können Anhänge in der Anforderung oder Antwort einer mehrteiligen Nachricht bearbeitet und an den Client zurückgesendet werden. Standardmäßig wird die Antwort im mehrteiligen Format an den Client gesendet.
Einschränkung: Sie können keinen Anhang zu einer Anforderung oder Antwort hinzufügen, die keine vorhandenen Anhänge enthält.
Alternativ können Sie context.message.attachments abwählen, um die Anhänge zu verwerfen und nur message.body an den Client zu senden.
Hinweis: Wenn die Assembly keine Parserrichtlinie enthält, gelten die folgenden Verarbeitungsregeln.
  • Bei einer mehrteiligen Anforderung, bei der die Variable message.body nicht geändert wird, behält die invoke-Richtlinie die Anhänge und übergibt sie an den Server.
  • Bei einer mehrteiligen Anforderung oder Antwort, bei der die Variable message.body nicht geändert wird, übergibt die Ergebnis-API-Aktion die Anhänge als endgültige Antwort.
  • Wenn die Variable message.body geändert wird, werden Anhänge verworfen.

Anhang abrufen

GatewayScript-Beispiele
Rufen Sie die Anlage nach Indexposition ab.
context.message.attachments[1]
Rufen Sie den Anhang ab, indem Sie den Wert von pic1 im Header Content-Id suchen.
context.message.attachments['cid:pic1']
Rufen Sie den Anhang ab, indem Sie den Wert von uri1 im Header Content-Location suchen.
context.message.attachments['uri1']

Anhängen eines Anhangs an die Nachricht

GatewayScript-Beispiel
var headers = JSON.parse ( '{ "Content-Type": "text/xml; charset=utf-8", "Content-Id": "<data>" }' );
context.message.attachments.append(headers, 'Hello world.');

Anzahl der Anhänge in einem Array abrufen

Beispiel
for (var i = 0; i < context.message.attachments.count; i++) {
  context.message.attachments[i].header.set('X-Foo', 'bar');
}

Anhang aus der Nachricht entfernen

GatewayScript-Beispiele
Entfernen Sie die Anlage nach Indexposition.
context.message.attachments.remove(1)
Entfernen Sie den Anhang, indem Sie den Wert von pic1 im Header Content-Id suchen.
context.message.attachments.remove('cid:pic1')
Entfernen Sie den Anhang, indem Sie den Wert von uri1 im Header Content-Location suchen.
context.message.attachments.remove('uri1')

Lesen, Zugreifen und Bearbeiten des Körpers eines Anhangs

GatewayScript-Beispiele
Gehen Sie wie folgt vor, um die Nutzdaten eines Anhangs im Binärformat zu lesen und den Inhalt als Buffer-, Buffers-, JSON-oder XML NodeList -Objekt zurückzugeben:
context.message.attachments[0].body.readAsBuffer(function(errorObject,bufferObject){})
context.message.attachments[0].body.readAsBuffers(function(errorObject,buffersObject){})
context.message.attachments[0].body.readAsJSON(function(errorObject,jsonObject){})
context.message.attachments[0].body.readAsXML(function(errorObject,nodeList){})
So schreiben Sie den Inhalt Hello world in die aktuellen Nutzdaten des Anhangs:
message.attachments[0].body.write("Hello world")

Header eines Anhangs bearbeiten

GatewayScript-Beispiele
Gehen Sie wie folgt vor, um die Werte der gesamten Anhangsheader abzurufen:
context.message.attachments[0].headers
So rufen Sie den Wert des benannten Headers des Anhangs ab:
context.message.attachments[0].header.get();
Löscht den aktuellen Content-Type -Header des Anhangs.
context.message.attachments[0].header.remove('Content-Type');
Sie können den Wert des benannten Headers eines Anhangs festlegen. Der Header kann verbunden und nicht verbunden sein. Nehmen Sie den folgenden Code als Beispiel.
context.message.attachments[0].header.set('MyCookie', ['cookie1', 'cookie2']);
Wenn der Werttyp "array" ist, ist der MyCookie -Header nicht zusammengeführt und mit unterschiedlichen Einträgen im HTTP -Header vorhanden.
MyCookie: cookie1
MyCookie: cookie2