Hello,
We have continued the development,
The output system now replies to us
However we do see that the 2nd MIME part, the image, is being sent from ENSEMBLE, different than the image sent with POSTMAN
1 Let's see what we send from Ensemble:
.png)
2 The following image show us what POSTMAN correctly sends:
.png)
If we examine and compare both images, we observe that the image sent with Postam is being recognized as a JPEG, however the one sent with Ensemble is not being sent as a JPEG
The code which we have written is:
Class Operaciones.REST.miSCS.miSCS Extends EnsLib.REST.Operation
{
Parameter INVOCATION = "Queue";
/// 📤 Subir la imagen
Method SubirImagen(pRequest As Mensajes.Request.miSCS.SubirImagen, pResponse As Mensajes.Response.miSCS.SubirImagen) As %Library.Status
{
//Crear Request y Response HTTP
Set httpRequest=##class(%Net.HttpRequest).%New()
set tResponse = ##class(%Net.HttpResponse).%New()
// Create root MIMEPart, la parte que contiene al resto
Set RootMIMEPart=##class(%Net.MIMEPart).%New()
//Crear parte con el expediente
Set ExpedienteMIMEPart=##class(%Net.MIMEPart).%New()
Set contentdisp="form-data; name=""expediente"""
Do ExpedienteMIMEPart.SetHeader("Content-Disposition",contentdisp)
Set ExpedienteMIMEPart.Body=pRequest.expediente
//Do ExpedienteMIMEPart.SetHeader("Content-Type","text/plain")
// Crear parte con la imagen
Set ImagenMIMEPart=##class(%Net.MIMEPart).%New()
Set ImagenMIMEPart.Body=##class(%GlobalCharacterStream).%New()
//Probamos a leer una imagen local
Set stream=##class(%Stream.FileCharacter).%New()
Set sc=stream.LinkToFile("C:\Users\ext-ymorjim\Pictures\miSCS.jpg")
While 'stream.AtEnd {
Set linea=stream.Read()
}
$$$LOGINFO("linea: "_linea)
//Escribir la imagen en el mensaje MIME
Do ImagenMIMEPart.Body.Write(linea)
//Do ImagenMIMEPart.Body.Write(pRequest.imagen)
// Cabeceras de la imagen
Set ImagenMIMEPart.ContentType="image/jpeg"
Set contentdisp="form-data; name=""imagen""; filename="""_stream.Filename_""
Do ImagenMIMEPart.SetHeader("Content-Disposition",contentdisp)
// Insertar las partes en la raiz
Do RootMIMEPart.Parts.Insert(ExpedienteMIMEPart)
Do RootMIMEPart.Parts.Insert(ImagenMIMEPart)
// create MIME writer; write root MIME message
Set writer=##class(%Net.MIMEWriter).%New()
// Prepare outputting to the HttpRequestStream
Set httpRequest=##class(%Net.HttpRequest).%New()
Set status=writer.OutputToStream(httpRequest.EntityBody)
if $$$ISERR(status) {do $SYSTEM.Status.DisplayError(status) Quit}
// Now write down the content
Set status=writer.WriteMIMEBody(RootMIMEPart)
if $$$ISERR(status) {do $SYSTEM.Status.DisplayError(status) Quit}
// Creamos la URL
set url = ##class(Util.TablasMaestras).getValorMaestra("MISCS.PARAMETRIZACIONES","url")
set path = ##class(Util.TablasMaestras).getValorMaestra("MISCS.PARAMETRIZACIONES","path")
set servicio = ##class(Util.TablasMaestras).getValorMaestra("MISCS.PARAMETRIZACIONES","servicio")
set recurso = ##class(Util.TablasMaestras).getValorMaestra("MISCS.PARAMETRIZACIONES","subirImagen")
set URL = "http://"_url_path_servicio_recurso
$$$LOGINFO("URL: "_URL)
//Escribimos el tipo de contenido que enviamos
Set httpRequest.ContentType="multipart/form-data; boundary="_RootMIMEPart.Boundary
$$$LOGINFO("> httpRequest.ContentType: "_httpRequest.ContentType)
//Enviamos
set tSC=httpRequest.Post(URL,0)
$$$LOGINFO("tSC: "_tSC)
if $$$ISERR(tSC){
$$$ThrowOnError(tSC)
}
if (tResponse.Data.AtEnd = 0) {
$$$LOGINFO("En SubirImagen, tamaño de tResponse: "_tResponse.Data.Size)
set linea = tResponse.Data.Read()
$$$LOGINFO("Linea: "_linea)
}
set pResponse = ##class(Mensajes.Response.miSCS.SubirImagen).%New()
set pResponse.resultado = 1
set pResponse.informacion = linea
Quit pResponse
}How could we continue‽
Could you point us to some example??, please
We have read:
https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.U…
Thanks in advance
- Log in to post comments
.png)
.png)
.png)

























