cancel
Showing results for 
Search instead for 
Did you mean: 

Received HTTP response code 400 : bad http request

alejandro_gmez
Participant
0 Kudos

Hi all:

I'm trying to connect to my XI server using an RFC in my SAP Development environment. For test, I'm using SE37 tcode.

I've configured all in XI (Integration Builder: configuration and design). After using SE37, I obtain an error message:

**************************************************************************************************************************

>>>> RfcAbort called by external program ...

handle = 3

text = call to messaging system failed: com.sap.aii.af.ra.ms.api.DeliveryException: Received HTTP response code 400 : bad http request

>>>> < accepted > REG <ac: 2> >>> FLUSH (READ) (55993265)

UUID: send_rfcuuid EF089295-8E3D-9E45-B140-A8C0A645DCCE

>>>> < accepted > REG <ac: 3> >>> WRITE (55993265)

000000 | 01010008 01020101 01010000 01010103 |................

000010 | 00040000 020B0103 0106000B 04010002 |................

000020 | 01000200 00002301 06000700 0D31302E |......#......10.

000030 | 3133372E 37332E31 30340007 00110001 |137.73.104......

000040 | 52001100 12000436 34302000 12001300 |R......640 .....

000050 | 04343644 20001300 08000978 69647365 |.46D ......xidse

000060 | 72766572 00080006 000E5A4E 54535F53 |rver......ZNTS_S

000070 | 45415243 485F5849 00060514 0010EF08 |EARCH_XI........

000080 | 92958E3D 9E45B140 A8C0A645 DCCE0514 |...=.E.@...E....

000090 | 04030012 5246435F 45585445 524E414C |....RFC_EXTERNAL

0000a0 | 5F41424F 52540403 0402007F 63616C6C |_ABORT......call

0000b0 | 20746F20 6D657373 6167696E 67207379 | to messaging sy

0000c0 | 7374656D 20666169 6C65643A 20636F6D |stem failed: com

0000d0 | 2E736170 2E616969 2E61662E 72612E6D |.sap.aii.af.ra.m

0000e0 | 732E6170 692E4465 6C697665 72794578 |s.api.DeliveryEx

0000f0 | 63657074 696F6E3A 20526563 65697665 |ception: Receive

000100 | 64204854 54502072 6573706F 6E736520 |d HTTP response

000110 | 636F6465 20343030 203A2062 61642068 |code 400 : bad h

000120 | 74747020 72657175 65737404 02FFFF00 |ttp request.....

000130 | 00FFFF00 00000000 00000000 00000000 |................

>> CPIC native call CMSEND convid: 55993265 17:25:44,349

<< CPIC native call CMSEND convid: 55993265 17:25:44,349

>>>> < accepted > REG <ac: 4> >>> FLUSH(WRITE) (55993265)

>> CPIC native call CMDEAL convid: 55993265 17:25:44,349

<< CPIC native call CMDEAL convid: 55993265 17:25:44,364

>>>> < accepted > REG <ac: 5> >>> FLUSH(WRITE) (55993265)

>>>> < accepted > REG <ac: 6> >>> ABORT (55993265)

>> CPIC native call coxabort convid: 55993265 17:25:44,364

<< CPIC native call coxabort convid: 55993265 17:25:44,364

>>>> < accepted > REG <ac: 7> >>> CLOSE (55993265)

>> CPIC native call coxclose convid: 55993265 17:25:44,364

<< CPIC native call coxclose convid: 55993265 17:25:44,364

>>>> < accepted > REG <ac: 8> >>> FREE (55993265)

<* RfcAbort *>

It was obtained from one of the RFC trace files.

Thanks in advance (and excuse my bad English),

Alejandro Gómez.

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi Alejandro Gómez ,

In HTTP status code list the 4xx class of status code is intended for cases in which the client seems to have erred. Except when responding to a HEAD request, the server SHOULD include an entity containing an explanation of the error situation, and whether it is a temporary or permanent condition. These status codes are applicable to any request method. User agents SHOULD display any included entity to the user.

If the client is sending data, a server implementation using TCP SHOULD be careful to ensure that the client acknowledges receipt of the packet(s) containing the response, before the server closes the input connection. If the client continues sending data to the server after the close, the server's TCP stack will send a reset packet to the client, which may erase the client's unacknowledged input buffers before they can be read and interpreted by the HTTP application.

HTTP 400 stands for Bad Request

This code indicates that the server could not understand the client's request, or found it to be incorrect in some way.

The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications.

for more details on HTTP codes you may follow these links

http://www.web-cache.com/Writings/http-status-codes.html

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

http://www.helpwithpcs.com/courses/html/html_http_status_codes.htm

Thanks

Sandeep

PS: if helpful kindly reward points

alejandro_gmez
Participant
0 Kudos

Hi Peter:

Thanks for your fast response.

This is an internal error. I'm unable to see the http request and the URL generated for the RFC in SAP system to connect to the XI server.

Alejandro.

Former Member
0 Kudos

Hi,

you must know what data you are sending in the se37. you can a read a source of FM there..

But tell me, what do you need to achieve? This is quite anusual sending data by RFC directly to IE...

If you need to send some RFC request, create usual RFC->....scenario. Search the forum, there is a lot of about that here.

Peter

alejandro_gmez
Participant
0 Kudos

Hi again, Peter:

I'm not trying to send data to Internet. I'm trying to send data to my XI system using an RFC call in my SAP R/3.

I've been looking at the XI server log files (defaultTrace.##.trc) and there are a lot of entries showing the error: "Bad http request: Received HTTP response code 400". In the "ICM Monitor" (SMICM tcode) I can see the same error.

I think it's an internal error when SAP tryies to connect with XI using the RFC, but i don't know where I must go to solve it.

Thanks again,

Alejandro.

Former Member
0 Kudos

Hi,

I still don't understand, what do you need to achieve. So tell me this please.

Also I still don't know what are you sending where exactly, but when you are getting HTTP code response, you are sending it to HTTP server (and it doesn't mette, it is not in the internet, but it is stil an HTTP server.)

Sorry, but I'm not able to help you at this point. Give me some additional information please.

Peter

Former Member
0 Kudos

Alejandro,

what's your URL target? I checked your message again and it's saying - wrong call to messaging system... Are you trying to send an RFC to Adapter Engine?

Tell me please you target URL.

Peter

alejandro_gmez
Participant
0 Kudos

Hi Peter:

I'm trying to send data from my SAP R/3 to an external web service using an intermediate XI system that receives data from SAP by RFC calls (RFC Sender Communication Channel) and send data to the external web service using an HTTP Receiver Communication Channel.

The problem appears when SAP RFC's tryies to connect to XI. I think it's an internal error, or a bad configuration, or both, or... I don't know.

Another question: XML messages sended from SAP to XI doesn't appear ussing SXMB_MONI.

Thank you very much again,

Alejandro.

Former Member
0 Kudos

Hi,

you will not see anything in the sxmb_moni, because the message didn't reach the integration engine. I assume, adapter engine sends you back code 400.

Alejandro, what type is your connection in SM59 to XI?

Have you read these blogs?

/people/michal.krawczyk2/blog/2005/03/29/configuring-the-sender-rfc-adapter--step-by-step

/people/shabarish.vijayakumar/blog/2008/01/08/troubleshooting--rfc-and-soap-scenarios-updated-on-20042009

/people/shabarish.vijayakumar/blog/2008/01/08/troubleshooting--rfc-and-soap-scenarios-updated-on-20042009

/people/shabarish.vijayakumar/blog/2008/01/08/troubleshooting--rfc-and-soap-scenarios-updated-on-20042009

Peter

alejandro_gmez
Participant
0 Kudos

Hi Peter:

Is a TCP/IP connection type.

Thank you very much,

Alejandro.

Former Member
0 Kudos

Hi Alexandro,

just check in r/3 in sm59 whether your rfc conn to XI system is running fine.........i think you will get a error on running the connection test on this rfc..........if you get an error, go to XI system and in RWB in comm channel monitoring, just check whether your sender RFC adapter is in error or not.......if it is in error, go to ID, rectify it, save and activate it again.........now again check in RWB your sender comm channel should be green in comm channel monitoring.............then in r/3 in sm59 retest your xi connection..........now it should work.......if it works, then retrigger your RFC from R/3 and see if it is not stuck in SM58 transaction.........if it is not in SM58, then it will reach XI system.

Regards,

Rajeev Gupta

alejandro_gmez
Participant
0 Kudos

Hi Rajeev Gupta:

The RFC that connects with XI system is working fine.

Thanks,

Alejandro.

alejandro_gmez
Participant
0 Kudos

Hi again, Rajeev Gupta:

The RFC that connects to the XI system is working fine when I test it with SM59 tcode.

Thanks,

Alejandro.

Former Member
0 Kudos

Hi,

you are sending a request, which is not a proper HTTP request...

HTTP is a protocol at there is a standard how the request should like. If you send some other data, you will get this error.

Check the HTTP requests on the web and rectify your HTTP request according that.

Peter