[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: help request on HTTPAPI
Dear all,
I wonder if someone can help me with the HTTPAPI. I
downloaded the httpapi a few days ago and I try to run one of the
examples listed in the qrpglesrc source file (example 19).
Unfortunately, the Translate web service does not work (you can verify
it from the [1]www.webservicex.net site). Therefore, I tried to modify
the example19 program, in order to consume another webservice from the
same web server. The webservice I try to consume is the
CurrencyConvertor.
When I call the program I get the following error: HTTP/1.1 400 Bad
Request
The prgle program that tries to consume the web service is listed
below:
*
H DFTACTGRP(*NO) BNDDIR('HTTPAPI')
D GT_EXMPL1 PR ExtPgm('GT_EXMPL1')
D Curr1 3A const
D Curr2 3A const
D GT_EXMPL1 PI
D Curr1 3A const
D Curr2 3A const
/copy httpapi_h
D Incoming PR
D String 32767A varying
D depth 10I 0 value
D name 1024A varying const
D path 24576A varying const
D value 65535A varying const
D attrs * dim(32767)
D const options(*varsize)
D SOAP s 2000A varying
D rc s 10I 0
D String s 1000A varying
D Lang s 32A
D LangMode s 41A varying
d peBasic s 1N
d peRealm s 124A
d proxyName s 100A inz('PROXYSRV')
d mTimeOut s 3S 0 inz(10)
/free
*inlr = *on;
if %parms < 2;
http_comp('This program requires 2 parms,' +
' Curr1 & Curr2 ');
*inlr = *on;
return;
endif;
http_debug(*ON);
rc = http_setproxy( %trim(proxyName) : 8080 );
// rc = http_proxy_getauth( peBasic : peRealm );
rc = http_proxy_setauth( HTTP_AUTH_NONE :
`username' :
'password' );
if (rc <> 0);
http_crash();
return;
endif;
SOAP =
'<?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>'
+' <ConversionRate xmlns="http://www.webserviceX.NET/"> '
+' <FromCurrency>' + Curr1 +'</FromCurrency>'
+' <ToCurrency>' + Curr2 +'</ToCurrency>'
+' </ConversionRate>'
+'</soap:Body>'
+'</soap:Envelope>';
rc = HTTP_setCCSIDs(1208: 0); // CCSID 1208 = UTF-8
rc = http_url_post_xml(
'http://www.webservicex.net/CurrencyConvertor.asmx'
: %addr(SOAP) + 2
: %len(SOAP)
: *NULL
: %paddr(Incoming)
: %addr(String)
: mTimeOut
: HTTP_USERAGENT
: 'text/xml; charset=utf-8'
:
'http://www.webserviceX.NET/ConversionRate');
if (rc <> 1);
http_crash();
else;
http_comp(String);
endif;
/end-free
C return
P Incoming B
D Incoming PI
D String 32767A varying
D depth 10I 0 value
D name 1024A varying const
D path 24576A varying const
D value 65535A varying const
D attrs * dim(32767)
D const options(*varsize)
/free
if (name = 'ConversionRateResult');
String = value;
endif;
/end-free
P E
I have switched on the debugger and the messages which are printed out
in the httpapi_debug stream file are the following:
HTTPAPI Ver 1.23 released 2008-04-24
OS/400 Ver V5R3M0
http_proxy_setauth(): entered
New iconv() objects set, PostRem=1208. PostLoc=0. ProtRem=819.
ProtLoc=0
http_persist_open(): entered
http_long_ParseURL(): entered
DNS resolver retrans: 2
DNS resolver retry : 2
DNS resolver options: x'000001B6'
DNS default domain: GR.XXXX.NET
DNS server found: 111.111.2.22
DNS server found: 111.111.111.1
http_persist_post(): entered
http_long_ParseURL(): entered
do_post(): entered
POST http://www.webservicex.net/CurrencyConvertor.asmx HTTP/1.1
Host: www.webservicex.net
User-Agent: http-api/1.23
Content-Type: text/xml; charset=utf-8
SOAPAction: http://www.webserviceX.NET/ConversionRate
Expect: 100-continue
Content-Length: 394
recvresp(): entered
HTTP/1.1 100 Continue
Via: 1.1 HBPRX
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>
<ConversionRate xmlns="http://www.webserviceX.NET/">
<FromCurrency>CAD</FromCurrency> <ToCurrency>USD</ToCurrency>
</ConversionRate></soap:Body></soap:Envelope>
recvresp(): entered
HTTP/1.1 400 Bad Request
Via: 1.1 HBPRX
Connection: Keep-Alive
Proxy-Connection: Keep-Alive
Content-Length: 0
Date: Tue, 30 Jun 2009 12:22:34 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private
SetError() #13: HTTP/1.1 400 Bad Request
recvdoc parms: identity 0
header_load_cookies() entered
recvdoc(): entered
SetError() #0:
SetError() #13: HTTP/1.1 400 Bad Request
http_close(): entered
References
1. http://www.webservicex.net/
-----------------------------------------------------------------------
This is the FTPAPI mailing list. To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------