Skip to Content
0
Former Member
Sep 14, 2007 at 03:42 PM

Send request to Web Service

34 Views

Hi,

I need to send the Information to Webservice. I created a Z function Module and sending the information to Webservice. I get response as <soap:Body>##

<soap:Fault>##

<faultcode>so.

Below is the code.

DATA:WF_STRING TYPE STRING.

DATA:WF1_STRING TYPE STRING.

DATA:L_VERSIGN TYPE STRING.

DATA:L_VENDOR TYPE STRING.

DATA:L_PORT TYPE STRING.

DATA:L_PROXY TYPE STRING.

DATA:L_PROXY_LOG TYPE STRING.

DATA:L_PROXY_PWD TYPE STRING.

DATA:L_PROXYPORT TYPE STRING.

DATA:L_PARMLIST TYPE STRING.

CLEAR: WF_STRING,WF1_STRING,W_URL1,W_URL.

CONCATENATE

'<?xml version="1.0" encoding="utf-8"?>'

' 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>'

'<processPayment xmlns="http://rpuinet/ccprocess">'

'<userValEnc>' L_MERCHANT_ID '</userValEnc>'

'<pwdValEnc>' L_PASSWORD '</pwdValEnc>'

'<partValEnc>' L_VERSIGN '</partValEnc>'

'<venValEnc>' L_VENDOR '</venValEnc>'

'<siteUrl>' L_URL '</siteUrl>'

'<sitePort>' L_PORT '</sitePort>'

'<proxyAddress>' L_PROXY '</proxyAddress>'

'<proxyLogon>' L_PROXY_LOG '</proxyLogon>'

'<proxyPassword>' L_PROXY_PWD '</proxyPassword>'

'<proxyPort>' L_PROXYPORT '</proxyPort>'

'<timeout>' '30' '</timeout>'

'<ParmList>' L_PARMLIST '</ParmList>'

'</processPayment>'

'</soap:Body>'

'</soap:Envelope>'

INTO WF1_STRING.

W_URL1 = 'http://inetdev/ccprocess.asmx'.

CALL METHOD CL_HTTP_CLIENT=>CREATE_BY_URL

EXPORTING

URL = W_URL1

  • ssl_id = c_ssl_id

IMPORTING

CLIENT = CLIENT

EXCEPTIONS

ARGUMENT_NOT_FOUND = 1

PLUGIN_NOT_ACTIVE = 2

INTERNAL_ERROR = 3

OTHERS = 4.

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CALL METHOD CLIENT->REQUEST->SET_HEADER_FIELD

EXPORTING

NAME = 'Content-Type'

VALUE = 'text/xml; charset=utf-8 '.

CLIENT->REQUEST->SET_HEADER_FIELD( NAME = '~request_method'

VALUE = 'POST' ). "#EC *

DATA: RLENGTH TYPE I.

CLEAR:RLENGTH.

RLENGTH = STRLEN( WF1_STRING ).

CALL METHOD CLIENT->REQUEST->SET_CDATA

EXPORTING

DATA = WF1_STRING

OFFSET = 0

LENGTH = RLENGTH.

CALL METHOD CLIENT->SEND

EXCEPTIONS

HTTP_COMMUNICATION_FAILURE = 1

HTTP_INVALID_STATE = 2.

CALL METHOD CLIENT->RECEIVE

EXCEPTIONS

HTTP_COMMUNICATION_FAILURE = 1

HTTP_INVALID_STATE = 2

HTTP_PROCESSING_FAILED = 3

OTHERS = 4.

P_CONTENT = CLIENT->RESPONSE->GET_CDATA( ).

CALL METHOD CLIENT->UNESCAPE_URL

EXPORTING

ESCAPED = CONTENT

RECEIVING

UNESCAPED = CONTENT.

The Response shows as"

## 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>so

Any Idea How to correct ?

Thanks

Niranjan