Hi All,
I'm trying to consume a Web Service but I'm getting an error message,
for me this is a diferent caind of Web Service in my opinion, because
the message is a XML string message encapsulated in XML , I tryed to
consume it in two diferent forms:
1. using SOAP protocol I have attached the WSDL, Program and error
message on the httpapi_debug(SOAP).txt file. I have changed the name
just to information purposes:
a. citas.wsdl
b. pasport7 the program
c. httpapi_debug(SOAP).txt the return [1]error.in the error
message you can notice that is pointing to the <ciudadano> tag but
this an valid tag, I can't find what the error is.
2. using POST here is a particular scenario, I have to modify the
peValue field size , that is in the http_url_encoder_addvar_s
routine from 256 to 32767, in order to move the contents of the string
XML data into it, into HTTPAPI_H and ENCODERR4 members.
a. pasport6 program
b. httpapi_debug(POST).txt
if you take a look in the error file you can see the
stringXML=%3C%3Fxml+version%3D1.0+encoding%3Dutf-8%3F%3E%... etc that
is not translating correctly because it supposed to be: stringXML<?xml
version=1.0 encoding=utf-8?>'<cita ciudad=3 tipoCita...etc
I think the error from the server is caused because the translation to
the encoded variable stringXML
I really want to know the reasons in the two situations but I'll say
that my priority is for the POST message, because the nature of this
specific Web Service, I don't know why they did it in this way. can
some body give me a hand?
thank you in advance.
P.S. I also attached the XML message that is supposed to be received:
XML Bancos.doc
Jeffreehy Talavera Díaz
Consultor Especialista
S390, iSeries & Open Systems
References
1. http://error.in/
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://tempuri.org/ws_MotorSINGEC/Citas" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://tempuri.org/ws_MotorSINGEC/Citas" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/ws_MotorSINGEC/Citas">
<s:element name="RecibeXML">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="stringXML" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="RecibeXMLResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="RecibeXMLResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
<wsdl:message name="RecibeXMLSoapIn">
<wsdl:part name="parameters" element="tns:RecibeXML" />
</wsdl:message>
<wsdl:message name="RecibeXMLSoapOut">
<wsdl:part name="parameters" element="tns:RecibeXMLResponse" />
</wsdl:message>
<wsdl:portType name="CitasSoap">
<wsdl:operation name="RecibeXML">
<wsdl:input message="tns:RecibeXMLSoapIn" />
<wsdl:output message="tns:RecibeXMLSoapOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="CitasSoap" type="tns:CitasSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<wsdl:operation name="RecibeXML">
<soap:operation soapAction="http://tempuri.org/ws_MotorSINGEC/Citas/RecibeXML" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Citas">
<wsdl:port name="CitasSoap" binding="tns:CitasSoap">
<soap:address location="http://172.30.7.2/singecmotorcitas/citas.asmx" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions> H DFTACTGRP(*NO) BNDDIR('LIBHTTP/HTTPAPI')
/copy libhttp/qrpglesrc,httpapi_h
D SOAP s 32767A varying
D rc s 10I 0
D msg s 50A
D wait s 1A
D size s 10I 0
D CRLF C CONST(x'0d25')
/free
SOAP =
'<?xml version="1.0" encoding="utf-8"?>'+ CRLF
+'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '
+CRLF +'xmlns:xsd="http://www.w3.org/2001/XMLSchema"'+ CRLF
+'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'+ CRLF
+' <soap:Body>'+ CRLF
+' <RecibeXML xmlns="http://tempuri.org/ws_MotorSINGEC/Citas">'+ CRLF
+' <stringXML>'
+'<cita ciudad="3" tipoCita="" numTransaccion="" idCita="" fechaCita=""'
+' horaCita="" confirm="" estatusConfirm=""> '+ CRLF
+' ' +CRLF
+' <ciudadano>'
+'<numeroIdentidad>0101-1978-01018</numeroIdentidad>'
+'<nombreCompleto>AMERICA IVONNE ALEMAN ARGUETA </nombreCompleto>'
+'<numeroIdentificacion></numeroIdentificacion>'
+' </ciudadano>'
+'<datosTransaccion>'
+'<fechaTransaccion>08/24/04</fechaTransaccion>'
+'<idSucursal>314</idSucursal>'
+'<duracionPasaporte>1</duracionPasaporte>'
+'<costoPasaporte></costoPasaporte>'
+'<costoCita></costoCita>'
+'<montoCredito></montoCredito>'
+'<totalTransaccion></totalTransaccion>'
+'<tipoCambio>18.182</tipoCambio>'
+'<folioTGR1>0</folioTGR1>'
+'<transaccionExtranjero>'
+'<pais></pais>'
+'<ciudad></ciudad>'
+'<tipoServicio></tipoServicio>'
+'<numDocPago></numDocPago>'
+'<comentarioPago></comentarioPago>'
+'<montoPago></montoPago>'
+'</transaccionExtranjero>'
+'</datosTransaccion>'
+'<pasaporteAnterior>'
+'<libretaAnterior>B038626 </libretaAnterior>'
+'<fechaExpedicion>02/04/2004</fechaExpedicion>'
+'<fechaVencimiento>02/04/2009</fechaVencimiento>'
+'<tiempoVigencia></tiempoVigencia>'
+'<mesesVigencia></mesesVigencia>'
+'</pasaporteAnterior>'
//</cita>';
+'</cita></stringXML>' + CRLF
+' </RecibeXML>' + CRLF
+' </soap:Body>' + CRLF
+'</soap:Envelope>';
rc = http_url_post(
'http://172.30.7.2/singecmotorcitas/citas.asmx'
: %addr(SOAP) + 2
: %len(SOAP)
: '/tmp/Citas.xml'
: HTTP_TIMEOUT
: HTTP_USERAGENT
: 'text/xml'
: 'http://tempuri.org/ws_MotorSINGEC/'+
'Citas/RecibeXML');
if (rc <> 1);
msg = http_error();
else;
msg = 'Ok';
endif;
*inlr = *on;
HTTPAPI Ver 1.13.1 released 2006-01-03
New tables set, ASCII=QTCPASC. EBCDIC=QTCPEBC
http_url_post(): entered
http_persist_open(): entered
http_long_ParseURL(): entered
http_persist_post(): entered
http_long_ParseURL(): entered
do_post(): entered
POST /singecmotorcitas/citas.asmx HTTP/1.1
Host: 172.30.7.2
User-Agent: http-api/1.14
Content-Type: text/xml
SOAPAction: http://tempuri.org/ws_MotorSINGEC/Citas/RecibeXML
Expect: 100-continue
Content-Length: 1431
recvresp(): entered
HTTP/1.1 100 Continue
Via: 1.1 P-ISASERVER
SetError() ¬13: HTTP/1.1 100 Continue
senddoc(): entered
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<RecibeXML xmlns="http://tempuri.org/ws_MotorSINGEC/Citas">
<stringXML><cita ciudad="3" tipoCita="" numTransaccion="" idCita="" fechaCita="" horaCita="" confirm="" estatusConfirm="">
<ciudadano><numeroIdentidad>0101-1978-01018</numeroIdentidad><nombreCompleto>AMERICA IVONNE ALEMAN ARGUETA </nombreCompleto><numeroIdentificacion></numeroIdentificacion> </ciudadano><datosTransaccion><fechaTransaccion>08/24/04</fechaTransaccion><idSucursal>314</idSucursal><duracionPasaporte>1</duracionPasaporte><costoPasaporte></costoPasaporte><costoCita></costoCita><montoCredito></montoCredito><totalTransaccion></totalTransaccion><tipoCambio>18.182</tipoCambio><folioTGR1>0</folioTGR1><transaccionExtranjero><pais></pais><ciudad></ciudad><tipoServicio></tipoServicio><numDocPago></numDocPago><comentarioPago></comentarioPago><montoPago></montoPago></transaccionExtranjero></datosTransaccion><pasaporteAnterior><libretaAnterior>B038626 </libretaAnterior><fechaExpedicion>02/04/2004</fechaExpedicion><fechaVencimiento>02/04/2009</fechaVencimiento><tiempoVigencia></tiempoVigencia><mesesVigencia></mesesVigencia></pasaporteAnterior></cita></stringXML>
</RecibeXML>
</soap:Body>
</soap:Envelope>
recvresp(): entered
HTTP/1.1 500 Internal Server Error.
Connection: Keep-Alive
Content-Length: 535
Date: Sat, 24 Mar 2007 12:19:33 GMT
Content-Type: text/xml; charset=utf-8
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private
SetError() ¬13: HTTP/1.1 500 Internal Server Error.
recvdoc parms: identity 535
recvdoc(): entered
SetError() ¬0:
<?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>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Server was unable to read request. --> There is an error in XML document (9, 6). --> 'Element' is an invalid node type. Line 9, position 6.</faultstring>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>
SetError() ¬13: HTTP/1.1 500 Internal Server Error.
http_close(): entered
H DFTACTGRP(*NO) BNDDIR('LIBHTTP/HTTPAPI')
D/copy libhttp/qrpglesrc,httpapi_h
D cmd pr extpgm('QCMDEXC')
D command 200A const
D length 15P 5 const
D rc s 10I 0
D msg s 52A
d Enc s like(HTTP_URL_ENCODER)
D CRLF C CONST(x'0d25')
d
D data S *
D size S 10I 0
D SOAP s 32767A varying
/free
SOAP =
'<?xml version=1.0 encoding=utf-8?>'
+'<cita ciudad=3 tipoCita= numTransaccion= idCita= fechaCita='
+' horaCita= confirm= estatusConfirm=>'
+'<ciudadano>'
+'<numeroIdentidad>0101-1978-01018</numeroIdentidad>'
+'<nombreCompleto>AMERICA IVONNE ALEMAN ARGUETA </nombreCompleto>'
+'<numeroIdentificacion></numeroIdentificacion>'
+'</ciudadano>'
+'<datosTransaccion>'
+'<fechaTransaccion>08/24/04</fechaTransaccion>'
+'<idSucursal>314</idSucursal>'
+'<duracionPasaporte>1</duracionPasaporte>'
+'<costoPasaporte></costoPasaporte>'
+'<costoCita></costoCita>'
+'<montoCredito></montoCredito>'
+'<totalTransaccion></totalTransaccion>'
+'<tipoCambio>18.182</tipoCambio>'
+'<folioTGR1>0</folioTGR1>'
+'<transaccionExtranjero>'
+'<pais></pais>'
+'<ciudad></ciudad>'
+'<tipoServicio></tipoServicio>'
+'<numDocPago></numDocPago>'
+'<comentarioPago></comentarioPago>'
+'<montoPago></montoPago>'
+'</transaccionExtranjero>'
+'</datosTransaccion>'
+'<pasaporteAnterior>'
+'<libretaAnterior>B038626 </libretaAnterior>'
+'<fechaExpedicion>02/04/2004</fechaExpedicion>'
+'<fechaVencimiento>02/04/2009</fechaVencimiento>'
+'<tiempoVigencia></tiempoVigencia>'
+'<mesesVigencia></mesesVigencia>'
+'</pasaporteAnterior>'
+'</cita>';
/end-free
c
c eval *inlr = *on
c eval Enc=HTTP_url_encoder_new
c callp http_url_encoder_addvar_s(
c Enc : 'stringXML': %trim(SOAP))
c
c callp http_url_encoder_getptr(
c Enc : data : size )
c
c eval rc=http_url_post(
c 'http://172.30.7.2/singecmotorcitas/'+
c 'citas.asmx'+
c '/RecibeXML'
c : data
c : size
c : '/tmp/httptest.html'
c : HTTP_TIMEOUT
c : HTTP_USERAGENT
c : 'application/x-www-form-urlencoded')
c
c
c callp http_url_encoder_free(Enc)
c
c* dsply msg
c if rc <> 1
c eval msg = http_error
c dsply msg
c msg dsply
c 'ERROR' dsply
c return
c endif
c* 'OK' dsply
c callp cmd('DSPF ''/tmp/httptest.html''': 200)
c return
http_url_post(): entered
http_persist_open(): entered
http_long_ParseURL(): entered
http_persist_post(): entered
http_long_ParseURL(): entered
do_post(): entered
POST /singecmotorcitas/citas.asmx/RecibeXML HTTP/1.1
Host: 172.30.7.2
User-Agent: http-api/1.14
Content-Type: application/x-www-form-urlencoded
Expect: 100-continue
Content-Length: 1399
recvresp(): entered
HTTP/1.1 100 Continue
Via: 1.1 P-ISASERVER
SetError() ¬13: HTTP/1.1 100 Continue
senddoc(): entered
stringXML=%3C%3Fxml+version%3D1.0+encoding%3Dutf-8%3F%3E%3Ccita+ciudad%3D3+tipoCita%3D+numTransaccion%3D+idCita%3D+fechaCita%3D+horaCita%3D+confirm%3D+estatusConfirm%3D%3E%3Cciudadano%3E%3CnumeroIdentidad%3E0101-1978-01018%3C%2FnumeroIdentidad%3E%3CnombreCompleto%3EAMERICA+IVONNE+ALEMAN+ARGUETA+%3C%2FnombreCompleto%3E%3CnumeroIdentificacion%3E%3C%2FnumeroIdentificacion%3E%3C%2Fciudadano%3E%3CdatosTransaccion%3E%3CfechaTransaccion%3E08%2F24%2F04%3C%2FfechaTransaccion%3E%3CidSucursal%3E314%3C%2FidSucursal%3E%3CduracionPasaporte%3E1%3C%2FduracionPasaporte%3E%3CcostoPasaporte%3E%3C%2FcostoPasaporte%3E%3CcostoCita%3E%3C%2FcostoCita%3E%3CmontoCredito%3E%3C%2FmontoCredito%3E%3CtotalTransaccion%3E%3C%2FtotalTransaccion%3E%3CtipoCambio%3E18.182%3C%2FtipoCambio%3E%3CfolioTGR1%3E0%3C%2FfolioTGR1%3E%3CtransaccionExtranjero%3E%3Cpais%3E%3C%2Fpais%3E%3Cciudad%3E%3C%2Fciudad%3E%3CtipoServicio%3E%3C%2FtipoServicio%3E%3CnumDocPago%3E%3C%2FnumDocPago%3E%3CcomentarioPago%3E%3C%2FcomentarioPago%3E%3CmontoPago%3E%3C%2FmontoPago%3E%3C%2FtransaccionExtranjero%3E%3C%2FdatosTransaccion%3E%3CpasaporteAnterior%3E%3ClibretaAnterior%3EB038626+%3C%2FlibretaAnterior%3E%3CfechaExpedicion%3E02%2F04%2F2004%3C%2FfechaExpedicion%3E%3CfechaVencimiento%3E02%2F04%2F2009%3C%2FfechaVencimiento%3E%3CtiempoVigencia%3E%3C%2FtiempoVigencia%3E%3CmesesVigencia%3E%3C%2FmesesVigencia%3E%3C%2FpasaporteAnterior%3E%3C%2Fcita%3E
recvresp(): entered
HTTP/1.1 500 Internal Server Error
Connection: Keep-Alive
Content-Length: 3042
Date: Sun, 25 Mar 2007 07:24:20 GMT
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private
SetError() ¬13: HTTP/1.1 500 Internal Server Error
recvdoc parms: identity 3042
recvdoc(): entered
SetError() ¬0:
<html>
<head>
<title>Runtime Error</title>
<style>
body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;}
p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
pre {font-family:"Lucida Console";font-size: .9em}
.marker {font-weight: bold; color: black;text-decoration: none;}
.version {color: gray;}
.error {margin-bottom: 10px;}
.expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }
</style>
</head>
<body bgcolor="white">
<span><H1>Server Error in '/SINGECMotorCitas' Application.<hr width=100% size=1 color=silver></H1>
<h2> <i>Runtime Error</i> </h2></span>
<font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif ">
<b> Description: </b>An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.
<br><br>
<b>Details:</b> To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "Off".<br><br>
<table width=100% bgcolor="#ffffcc">
<tr>
<td>
<code><pre>
<!-- Web.Config Configuration File -->
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration></pre></code>
</td>
</tr>
</table>
<br>
<b>Notes:</b> The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's <customErrors> configuration tag to point to a custom error page URL.<br><br>
<table width=100% bgcolor="#ffffcc">
<tr>
<td>
<code><pre>
<!-- Web.Config Configuration File -->
<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration></pre></code>
</td>
</tr>
</table>
<br>
</body>
</html>
SetError() ¬13: HTTP/1.1 500 Internal Server Error
http_close(): entered
Attachment:
XML Bancos.doc
Description: MS-Word document
----------------------------------------------------------------------- This is the FTPAPI mailing list. To unsubscribe, please go to: http://www.scottklement.com/mailman/listinfo/ftpapi -----------------------------------------------------------------------