on 2010 Dec 16 6:10 AM
Hi,
I am trying to call a HTTP url from ABAP system using following code :-
DATA: WL_URL TYPE STRING ,
W_HTTP_CLIENT TYPE REF TO IF_HTTP_CLIENT ,
W_RESULT TYPE STRING ,
W_URL TYPE STRING ,
CODE_REASON TYPE STRING ,
HTTP_CODE TYPE I
.
MOVE 'http://<host>:8080/artemis7/triton/extension.services.SearchRequirements.a7x'
TO WL_URL.
CALL METHOD CL_HTTP_CLIENT=>CREATE_BY_URL
EXPORTING
URL = WL_URL
IMPORTING
CLIENT = W_HTTP_CLIENT
EXCEPTIONS
ARGUMENT_NOT_FOUND = 1
PLUGIN_NOT_ACTIVE = 2
INTERNAL_ERROR = 3
OTHERS = 4
.
CALL METHOD W_HTTP_CLIENT->AUTHENTICATE
EXPORTING
USERNAME = <username>
PASSWORD = <password>
.
CALL METHOD W_HTTP_CLIENT->SEND
EXCEPTIONS
HTTP_COMMUNICATION_FAILURE = 1
HTTP_INVALID_STATE = 2.
CALL METHOD W_HTTP_CLIENT->RECEIVE
EXCEPTIONS
HTTP_COMMUNICATION_FAILURE = 1
HTTP_INVALID_STATE = 2
HTTP_PROCESSING_FAILED = 3.
CALL METHOD W_HTTP_CLIENT->RESPONSE->GET_STATUS
IMPORTING
CODE = HTTP_CODE
REASON = CODE_REASON
.
W_RESULT = W_HTTP_CLIENT->RESPONSE->GET_CDATA( ).
HTTP request status code and message says 200 and OK.
And there is no exception as well.
However, I am not able to received any data in w_result from method 'response->get_cdata()'
When I open it in browser, it returns an XML response.
Please help.
Thanks and regards,
Amey
Request clarification before answering.
Hi , what is the exact issue here ? I am also facing same problem and response is coming as blank. I saw that you have added few more code . could you suggest why is it needed ?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Resolved it myself.
"STEP-1 : CREATE HTTP CLIENT
CALL METHOD CL_HTTP_CLIENT=>CREATE_BY_URL
EXPORTING
URL = WL_URL
IMPORTING
CLIENT = W_HTTP_CLIENT
EXCEPTIONS
ARGUMENT_NOT_FOUND = 1
PLUGIN_NOT_ACTIVE = 2
INTERNAL_ERROR = 3
OTHERS = 4
.
DATA: EMPTYBUFFER TYPE XSTRING.
EMPTYBUFFER = ''.
CALL METHOD W_HTTP_CLIENT->REQUEST->SET_DATA
EXPORTING DATA = EMPTYBUFFER.
"STEP-2 : AUTHENTICATE HTTP CLIENT
CALL METHOD W_HTTP_CLIENT->AUTHENTICATE
EXPORTING
USERNAME = 'user'
PASSWORD = 'password'
"LANGUAGE = SY-LANGU
.
CALL METHOD W_HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
EXPORTING NAME = '~request_method'
VALUE = 'GET'
.
CALL METHOD W_HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
EXPORTING NAME = 'Content-Type'
VALUE = 'text/xml; charset=utf-8'.
CALL METHOD W_HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
EXPORTING NAME = 'Accept'
VALUE = 'text/xml, text/html'.
CONCATENATE WL_URL '#' INTO SOAP_ACTION.
CALL METHOD W_HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
EXPORTING NAME = 'SOAPAction'
VALUE = SOAP_ACTION.
"STEP-3 : SEND HTTP REQUEST
CALL METHOD W_HTTP_CLIENT->SEND
EXCEPTIONS
HTTP_COMMUNICATION_FAILURE = 1
HTTP_INVALID_STATE = 2.
*-----------------------------------------------------------------
"STEP-4 : GET HTTP RESPONSE
CALL METHOD W_HTTP_CLIENT->RECEIVE
EXCEPTIONS
HTTP_COMMUNICATION_FAILURE = 1
HTTP_INVALID_STATE = 2
HTTP_PROCESSING_FAILED = 3.
"STEP-5 : Read HTTP RETURN CODE
CALL METHOD W_HTTP_CLIENT->RESPONSE->GET_STATUS
IMPORTING
CODE = HTTP_STATUS_CODE
REASON = STATUS_TEXT
.
WRITE: / 'HTTP_STATUS_CODE = ',
HTTP_STATUS_CODE,
/ 'STATUS_TEXT = ',
STATUS_TEXT
.
"STEP-6 : READ RESPONSE DATA
CALL METHOD W_HTTP_CLIENT->RESPONSE->GET_CDATA
RECEIVING DATA = W_RESULT .
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.