Solo pasarela de API de DataPower

Manipulación de archivos adjuntos en un objeto message

El objeto message proporciona API y propiedades para manipular archivos adjuntos de mensajes.

Si el ensamblaje incluye una política de análisis, los archivos adjuntos de la solicitud o respuesta de un mensaje de varias partes se pueden manipular y devolver al cliente. De forma predeterminada, la respuesta se envía al cliente en formato de varias partes.
Restricción: No se puede añadir un archivo adjunto a una solicitud o respuesta que no contenga archivos adjuntos.
De forma alternativa, puede borrar context.message.attachments para descartar los archivos adjuntos y enviar sólo message.body al cliente.
Nota: Si el ensamblaje no incluye una política de análisis, se aplican las siguientes reglas de proceso.
  • Para una solicitud de varias partes en la que la variable message.body no se modifica, la política de invocación mantiene y pasa las conexiones al servidor.
  • Para una solicitud o respuesta de varias partes donde la variable message.body no se cambia, la acción de la API de resultados pasa los archivos adjuntos como respuesta final.
  • Si se cambia la variable message.body , se descartan los archivos adjuntos.

Recuperación de un archivo adjunto

Ejemplos de GatewayScript
Recuperar el archivo adjunto por ubicación de índice.
context.message.attachments[1]
Recupere el archivo adjunto buscando el valor de pic1 en la cabecera Content-Id .
context.message.attachments['cid:pic1']
Recupere el archivo adjunto buscando el valor de uri1 en la cabecera Content-Location .
context.message.attachments['uri1']

Adición de un archivo adjunto al mensaje

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

Recuperación del número de archivos adjuntos en una matriz

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

Eliminación de un archivo adjunto del mensaje

Ejemplos de GatewayScript
Elimine el archivo adjunto por ubicación de índice.
context.message.attachments.remove(1)
Elimine el archivo adjunto buscando el valor de pic1 en la cabecera Content-Id .
context.message.attachments.remove('cid:pic1')
Elimine el archivo adjunto buscando el valor de uri1 en la cabecera Content-Location .
context.message.attachments.remove('uri1')

Leer, acceder y manipular el cuerpo de un archivo adjunto

Ejemplos de GatewayScript
Para leer la carga útil de un archivo adjunto en binario y devolver el contenido como un objeto Buffer, Buffers, JSONo XML NodeList :
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){})
Para escribir contenido Hello world en la carga útil actual del archivo adjunto:
message.attachments[0].body.write("Hello world")

Manipulación de las cabeceras de un archivo adjunto

Ejemplos de GatewayScript
Para recuperar los valores de todas las cabeceras de archivo adjunto:
context.message.attachments[0].headers
Para recuperar el valor de la cabecera con nombre del archivo adjunto:
context.message.attachments[0].header.get();
Para suprimir la cabecera Content-Type actual del archivo adjunto.
context.message.attachments[0].header.remove('Content-Type');
Puede establecer el valor de la cabecera con nombre de un archivo adjunto. La cabecera se puede fusionar y no fusionar. Tome el código siguiente como ejemplo.
context.message.attachments[0].header.set('MyCookie', ['cookie1', 'cookie2']);
Si el tipo de valor es matriz, el encabezado " MyCookie " no está unido y está presente con diferentes entradas en el encabezado " HTTP ".
MyCookie: cookie1
MyCookie: cookie2