Avalados por :

Como enviar um multipart/form-data com xsjs e chamar um método Java

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

Olá,

Estou tentando enviar um "multipart/form-data" com o método POST a partir de xsjs e ao mesmo tempo chamar um método Java.

xsjs

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

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

request.setBody(contents);

Mas em Java, quando faço:

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

retorna nulo, enquanto que quando faço:

InputStream is =request.getInputStream();

retorna um valor adequado. Quero que meus dados estejam em Parts. O que devo fazer?

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

4 Respuestas

0
Cargando...

Obrigado Thomas, resolvi com:

request.setBody(filecontent);

Gennaro

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

No exemplo anterior, apenas uma entidade/parte foi criada. Suponho que se você enviar apenas uma parte, o objeto de solicitação seja inteligente o suficiente para colocá-la diretamente no corpo. Se realmente deseja usar várias partes, adicione mais de uma parte lá.

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

Olá Thomas,

Estou com o mesmo problema, mas ainda não encontrei uma solução. Eu utilizei 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());

Mas em Java, meu objeto de requisição tem as partes sem valores (tamanho = 0).

Obrigado,

Gennaro

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

Por sua própria natureza, request.setBody não é multipart. Se você deseja multipart, deve criar entidades individuais no objeto request.

JSDoc: Classe: EntityList

Cada entidade possui seu próprio corpo ao qual conteúdo pode ser estabelecido.

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?