on 08-17-2007 7:09 PM
Hi,
I'm using XI to request a non-xml third party webservice. This webservice requires a normal https POST with a parameter called "p". This allows for a simple form on a browser to be able to use it.
When the request is done by a regular browser like Firefox, everything goes ok and I get a normal response from the webservice. But when XI does the request with that same POST data, the server drops me a 500 Internal Server Error.
Using a local script to act as a server and give me what was sent by both Firefox and XI, I can see the POST data is correct, so as the Content-Length header. But the rest of the headers are quite different.
This is the request sent by XI:
===========================
POST / HTTP/1.0
content-type: application/x-www-urlform-encoded; charset=UTF-8
content-length: 59
connection: close
accept: /
user-agent: SAP Web Application Server (1.0;700)
host: 10.16.6.86:8080
sap-language: P
p=0302697012345678+++++++FR50CRSM1++++++++00000268400513N
===========================
And this is the request sent by Mozilla Firefox
===========================
POST / HTTP/1.1
Host: 10.16.6.86:8080
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,/;q=0.5
Accept-Language: pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 59
p=0302697012345678+++++++FR50CRSM1++++++++00000268400513N
===========================
My question here is: Is there a way to change the headers sent by XI and their content, so I could find out which one is making the webservice go boo on me? Or perhaps something else to try?
I've already tried the plain HTTP adapter and SOAP adapter without xml. In the above, the used was the plain HTTP adapter.
Thanks,
Coe
Instead of using HTTP Plain adapter, SOAP adapter or even build your own HTTP Adapter, use XI adapter and a Java Proxy to do the HTTPS POST using the Socket or HttpsURLConnection java classes.
Check this out:
/people/prasad.ulagappan2/blog/2005/06/27/asynchronous-inbound-java-proxy
/people/thorsten.nordholmsbirk/blog/2006/08/06/use-a-java-proxy-instead-of-a-jca-adapter
Regards,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I think it is the content-type. The plain HTTP adapter adds a charset which does not make any sense when you do not have a text type.
Apply note 1038911. That should help.
Regards
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
90 | |
10 | |
10 | |
10 | |
7 | |
7 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.