Gracias por la respuesta, ahi logre consumir el webservice.
Basicamente lo unico que modifique fue comentar el writer.Open(&Archivo),
este lo ocupaba para ver si se escribía correctamente el XML, al
comentarlo me hiso el request de consumir el webservices sin
problemas.
&HttpClient.AddHeader('
&HttpClient.AddHeader('
&HttpClient.Port=80
&HttpClient.Host="sve-piloto.
&writer.OpenRequest(&
//&writer.Open('comosoapui.
&writer.WriteStartElement('
&writer.WriteAttribute('xmlns:
soap/envelope/') //xmlns:SOAP-ENV="http://
envelope/"
......
....
..
.
&writer.Close()
&HttpClient.Execute('POST','
ConsultasResultadosVisacion')
__________________________________________________________________
Un Ejemplo de como consumir Servicios web con HTTPCLIENT
Parm(in:&CURP,out:&ErrDscr,out:&ErrNum,out:&String);
/*
&client = tipo httpclient
&writer = tipo xmlwriter
&reader = tipo xmlreader
*/
/* Este es el XML que genera el strom para consumir el ws
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<consultarPorCurp xmlns="http://microsoft.com/webservices/wsRENAPO/wsCURPS">
<aCveCurp>oemg630113mdflld04</aCveCurp>
</consultarPorCurp>
</soap:Body>
</soap:Envelope>
*/
// Estas son las instrucciones que se usaron con Genexus para crear un XML igual al del storm
&client.host = "bse.seg.gto.gob.mx"
&client.addHeader("Content-Type", "text/xml")
&client.addHeader("SOAPAction", "http://microsoft.com/webservices/wsRENAPO/wsCURPS/consultarPorCurp")
&writer.openRequest(&client) // si se quiere generar un archivo plano para ver como queda el xml cambiar esta linea por &writer.Open('C:/NombreArchivo.xml')
&writer.WriteStartDocument("utf-8")
&writer.WriteNSStartElement("soap:Envelope")
&writer.WriteAttribute("xmlns:soap","http://schemas.xmlsoap.org/soap/envelope/")
&writer.WriteAttribute("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance")
&writer.WriteAttribute("xmlns:xsd","http://www.w3.org/2001/XMLSchema")
&writer.WriteStartElement("soap:Body")
&writer.WriteNSStartElement("consultarPorCurp")
&writer.WriteAttribute("xmlns","http://microsoft.com/webservices/wsRENAPO/wsCURPS")
&writer.WriteRawText('<aCveCurp>' + trim(&CURP) + '</aCveCurp>' )
&writer.WriteEndElement()
&writer.WriteEndElement()
&writer.WriteEndElement()
&writer.Close()
&client.Execute("POST", "/SCE/alumno/Renapo")
if &client.statuscode >= 300 // error
&ErrDscr = &client.reasonline
&errNum = &client.StatusCode
Else // consumió el ws sin problemas
/*Procesa la respuesta
este es un ejemplo de la respuesta xml que devuelve el ws
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<consultarPorCurpResponse xmlns="http://microsoft.com/webservices/wsRENAPO/wsCURPS">
<consultarPorCurpResult>VEOB931113HJCNLR02|VENEGAS|OLVERA|BRANDON EFREN|H|13/11/1993|MEX|14|JC</consultarPorCurpResult>
</consultarPorCurpResponse>
</soap:Body>
</soap:Envelope>
*/
&reader.openResponse(&client)
Do While &reader.ReadType(1, 'consultarPorCurpResponse') = 1
&reader.read()
do while &reader.name <> 'consultarPorCurpResponse'
if &reader.Name = 'consultarPorCurpResult'
&string = &reader.Value
exit
endif
&reader.read()
Enddo
If not &String.IsEmpty()
exit
Endif
Enddo
Endif
&reader.close()
Return
/*
&client = tipo httpclient
&writer = tipo xmlwriter
&reader = tipo xmlreader
*/
/* Este es el XML que genera el strom para consumir el ws
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<consultarPorCurp xmlns="http://microsoft.com/webservices/wsRENAPO/wsCURPS">
<aCveCurp>oemg630113mdflld04</aCveCurp>
</consultarPorCurp>
</soap:Body>
</soap:Envelope>
*/
// Estas son las instrucciones que se usaron con Genexus para crear un XML igual al del storm
&client.host = "bse.seg.gto.gob.mx"
&client.addHeader("Content-Type", "text/xml")
&client.addHeader("SOAPAction", "http://microsoft.com/webservices/wsRENAPO/wsCURPS/consultarPorCurp")
&writer.openRequest(&client) // si se quiere generar un archivo plano para ver como queda el xml cambiar esta linea por &writer.Open('C:/NombreArchivo.xml')
&writer.WriteStartDocument("utf-8")
&writer.WriteNSStartElement("soap:Envelope")
&writer.WriteAttribute("xmlns:soap","http://schemas.xmlsoap.org/soap/envelope/")
&writer.WriteAttribute("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance")
&writer.WriteAttribute("xmlns:xsd","http://www.w3.org/2001/XMLSchema")
&writer.WriteStartElement("soap:Body")
&writer.WriteNSStartElement("consultarPorCurp")
&writer.WriteAttribute("xmlns","http://microsoft.com/webservices/wsRENAPO/wsCURPS")
&writer.WriteRawText('<aCveCurp>' + trim(&CURP) + '</aCveCurp>' )
&writer.WriteEndElement()
&writer.WriteEndElement()
&writer.WriteEndElement()
&writer.Close()
&client.Execute("POST", "/SCE/alumno/Renapo")
if &client.statuscode >= 300 // error
&ErrDscr = &client.reasonline
&errNum = &client.StatusCode
Else // consumió el ws sin problemas
/*Procesa la respuesta
este es un ejemplo de la respuesta xml que devuelve el ws
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<consultarPorCurpResponse xmlns="http://microsoft.com/webservices/wsRENAPO/wsCURPS">
<consultarPorCurpResult>VEOB931113HJCNLR02|VENEGAS|OLVERA|BRANDON EFREN|H|13/11/1993|MEX|14|JC</consultarPorCurpResult>
</consultarPorCurpResponse>
</soap:Body>
</soap:Envelope>
*/
&reader.openResponse(&client)
Do While &reader.ReadType(1, 'consultarPorCurpResponse') = 1
&reader.read()
do while &reader.name <> 'consultarPorCurpResponse'
if &reader.Name = 'consultarPorCurpResult'
&string = &reader.Value
exit
endif
&reader.read()
Enddo
If not &String.IsEmpty()
exit
Endif
Enddo
Endif
&reader.close()
Return
No hay comentarios:
Publicar un comentario