Tema cerrado 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Solucionado WEBSERVICE SOAP
17-05-2017, 10:52 AM (Este mensaje fue modificado por última vez en: 17-05-2017 10:54 AM por MBenzal.)
Mensaje: #1
WEBSERVICE SOAP
Hola buenos dias,

Estamos realizando pruebas para consumir Webservices como por ejemplo una que realizamos hace tiempo:

function postDemoWithCustomHeader() {
var request = {
headers : {
"Content-Type" : "application/json"
},
data : {
"UserName":"117",
"UserPassword":"454"
}
};
$http.post("http://genexusnet.bdn.msoft.es/CheckMuelleSmartDevicesEnvironment/rest/login", request, function(sData) {
ui.showToast(sData);
}, callbackError);
}

Nuestra duda es la siguiente:

Es posible consumir un tipo SOAP con varios headers? como por ejemplo:

   
.txt  datos.txt (Tamaño: 1.32 KB / Descargas: 4)

Gracias y un saludo.
Encuentra todos sus mensajes
17-05-2017, 11:18 AM
Mensaje: #2
RE: WEBSERVICE SOAP
Hola, si es posible realizarlo.

Adjunto un fichero XML, que tienes varias colecciones de ejemplo con distintas llamadas online, cada una con su formato.


Archivo(s) adjuntos
.txt  mappings-xml.txt (Tamaño: 19.07 KB / Descargas: 12)
Encuentra todos sus mensajes
18-05-2017, 05:11 PM
Mensaje: #3
RE: WEBSERVICE SOAP
Hola,

Por lo que veo la llamada al WEB Service directamente, sin pasar por un proxy intermedio fue implementada para Android hace unos años, no existe para IOS?
Encuentra todos sus mensajes
18-05-2017, 05:55 PM
Mensaje: #4
RE: WEBSERVICE SOAP
Hola, para el post() con varios atributos al header añádeselo uno más tal cual lo tienes.

Código:
headers : {
    "Content-Type" : "application/json"
    "SOAPAction" : "blablabla"
}

Los pares de clave/valor que le pongas ahí son los que van en el header, mas alguno necesario para la conexion, pero siempre tienen preferencia los que tu les pones.

Juan Carlos Rabanal Villalobos.
Computer Global Software - CGSoft
Encuentra todos sus mensajes
19-05-2017, 08:07 AM (Este mensaje fue modificado por última vez en: 19-05-2017 08:10 AM por MBenzal.)
Mensaje: #5
RE: WEBSERVICE SOAP
Hola Juan Carlos, lo que comentas lo probé hace un par de dias colocando el header de la misma manera que en la extensión de Chrome y en el Data introducí el contenido del body.

Código:
function postDemoWithCustomHeaderEXP() {
    var sesion  = "sesionABCabc";
      var request = {
            headers : {
                  "Content-Type" : "application/xml",
                  "SOAPAction" : "MSoftCoreaction/AWSEXPEDICION.SELEXPEDICION"
            },
            data : {
                "<?xml version='1.0' encoding='utf-8'?> <soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:msoft='MSoftCore'> <soapenv:Body> <msoft:wsExpedicion.SELEXPEDICION><msoft:Contextsession>"+sesion+"</msoft:Contextsession> <msoft:Seccod>1</msoft:Seccod> <msoft:Expctrcod>1</msoft:Expctrcod> <msoft:Expcod>1896</msoft:Expcod> </msoft:wsExpedicion.SELEXPEDICION> </soapenv:Body> </soapenv:Envelope>"
            }
      };
      $http.post("http://genexusnet.bdn.msoft.es/msoftcorenet/awsexpedicion.aspx", request, function(sData) {
            ui.showToast(sData);
      }, callbackError);
}

Y salta el siguiente error:

   

Por lo que deduzco que el "data : {}" debe tener un formato concreto.
Encuentra todos sus mensajes
19-05-2017, 08:35 AM (Este mensaje fue modificado por última vez en: 19-05-2017 08:36 AM por Juan Carlos.)
Mensaje: #6
RE: WEBSERVICE SOAP
Es un error de sintaxis, si usas {} en javascript es para definir un objeto. El parámetro data puede ser un objeto js complejo o un simple string que irá en el body.

Prueba así:
Código:
data: "<?xml version='1.0' encoding='utf-8'?> <soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:msoft='MSoftCore'> <soapenv:Body> <msoft:wsExpedicion.SELEXPEDICION><msoft:Contextsession>" + sesion + "</msoft:Contextsession> <msoft:Seccod>1</msoft:Seccod> <msoft:Expctrcod>1</msoft:Expctrcod> <msoft:Expcod>1896</msoft:Expcod> </msoft:wsExpedicion.SELEXPEDICION> </soapenv:Body> </soapenv:Envelope>"

Juan Carlos Rabanal Villalobos.
Computer Global Software - CGSoft
Encuentra todos sus mensajes
19-05-2017, 09:04 AM (Este mensaje fue modificado por última vez en: 19-05-2017 09:25 AM por MBenzal.)
Mensaje: #7
RE: WEBSERVICE SOAP
Hola, probé como me comentas de la siguiente manera:

Código:
function postDemoWithCustomHeaderEXP() {
    var sesion  = "sesionABCabc";
      var request = {
            headers : {
                  "Content-Type" : "application/xml",
                  "SOAPAction" : "MSoftCoreaction/AWSEXPEDICION.SELEXPEDICION"
            },
            data: "<?xml version='1.0' encoding='utf-8'?> <soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:msoft='MSoftCore'> <soapenv:Body> <msoft:wsExpedicion.SELEXPEDICION><msoft:Contextsession>blablablablabla</msoft:Contextsession> <msoft:Seccod>1</msoft:Seccod> <msoft:Expctrcod>1</msoft:Expctrcod> <msoft:Expcod>1896</msoft:Expcod> </msoft:wsExpedicion.SELEXPEDICION> </soapenv:Body> </soapenv:Envelope>"
      };
      $http.post("http://genexusnet.bdn.msoft.es/msoftcorenet/awsexpedicion.aspx", request, function(sData) {
            ui.msgBox(sData,"DEBUG",0);
      }, callbackError);
}

Y me devuelve unicamente la cabecera siguiente sin Body:

Código:
<?xml version = "1.0" encoding = "utf-8" ?>
<SOAP-ENV:Envelopexmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
</SOAP-ENV:Envelope>

En principio debería devolver incluso un error de validación de no ser correcta.
Encuentra todos sus mensajes
19-05-2017, 09:34 AM
Mensaje: #8
RE: WEBSERVICE SOAP
La conexión ha sido correcta pues ya hay respuesta, con esto ya lo que debes hacer es depurar lo que recibe el WS y ver qué no coincide y qué espera ese WS.

Juan Carlos Rabanal Villalobos.
Computer Global Software - CGSoft
Encuentra todos sus mensajes
19-05-2017, 12:04 PM
Mensaje: #9
RE: WEBSERVICE SOAP
La información que paso por el campo "data:" es exactamente la misma que con la extensión de Chrome y solo devuelve la cabezera, es como si no estubiese interpretando bien el request.

   
Encuentra todos sus mensajes
19-05-2017, 12:12 PM (Este mensaje fue modificado por última vez en: 19-05-2017 12:13 PM por Juan Carlos.)
Mensaje: #10
RE: WEBSERVICE SOAP
Por eso, es necesario que depures el WS cuando le llega la petición del chrome y la del framework, para comprobar las diferencias y hacerlo igual.

Juan Carlos Rabanal Villalobos.
Computer Global Software - CGSoft
Encuentra todos sus mensajes
Tema cerrado 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | XOne | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS