Avalados por :

Cómo enviar un multipart/form-data con xsjs y llamar a un método Java

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 34 Vistas
0
Cargando...

Hola,

Estoy intentando enviar un "multipart/form-data" con el método POST desde xsjs y a su vez llamar a un método Java.

xsjs

var request = new $.web.WebRequest($.net.http.POST,"/entity");

request.headers.set("Content-Type","multipart/form-data");

request.setBody(contents);

Pero en Java, cuando hago:

Collection <Part> Parts = request.getParts();

devuelve null, mientras que cuando hago:

InputStream is =request.getInputStream();

devuelve un valor adecuado. Quiero que mis datos estén en Parts. ¿Qué debo hacer?

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Gracias Thomas, resolví con:

request.setBody(filecontent);

Gennaro

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

En el ejemplo anterior, solo se creó una entidad/parte. Imagino que si solo envías una parte, el objeto de solicitud es lo suficientemente inteligente como para colocarla directamente en el cuerpo. Si realmente deseas utilizar varias partes, agrega más de una parte allí.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Thomas,

Tengo el mismo problema, pero aún no encuentro una solución. He utilizado este código:

PARTE XSJS:


var client = new $.net.http.Client();
var destination = $.net.http.readDestination("destination", "destination");
var request = new $.net.http.Request($.net.http.POST, "/");
request.contentType = "multipart/form-data";
var entity = request.entities.create();
request.entities[0].contentType = $.request.entities[i].contentType;
request.entities[0].headers.set("Content-Disposition", "form-data; name=\"files[\"filename.pdf\"]\"; filename=\"filename.pdf\"");
request.entities[0].setBody(file.asArrayBuffer());

Pero en Java, mi objeto de solicitud tiene las partes sin valores (tamaño = 0).

Gracias,

Gennaro

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Por su propia naturaleza, request.setBody no es multipart. Si deseas multipart, debes crear entidades individuales en el objeto request.

JSDoc: Clase: EntityList

Cada entidad tiene su propio cuerpo al que se le puede establecer contenido.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?