***SOAP方式调用WebService
REPORT z_barry_http_soap_post LINE-SIZE 1023.
DATA: http_client TYPE REF TO if_http_client .
DATA: proxy_host TYPE string VALUE '10.99.60.203' ,
proxy_port TYPE string VALUE '8080',
proxy_user TYPE string ,
proxy_pass TYPE string .
DATA: len TYPE i,
len_str TYPE string .
DATA: post_string TYPE string ,
return_str TYPE string .
PARAMETERS: p_code(11) TYPE c OBLIGATORY DEFAULT '1381852'.
PARAMETERS: p_user(20) TYPE c .
START-OF-SELECTION .
CONCATENATE ''
' ' xmlns:soap="
''
' IMPORTING
text_buffer = str
TABLES
binary_tab = bin_tab.
CALL METHOD http_client->close.
WRITE return_str .
WRITE / str.
***HTTP POST 方法
REPORT z_barry_http_post LINE-SIZE 1023.
DATA: http_client TYPE REF TO if_http_client .
DATA: proxy_host TYPE string VALUE '10.99.60.203' ,
proxy_port TYPE string VALUE '8080',
proxy_user TYPE string ,
proxy_pass TYPE string .
DATA: len TYPE i,
len_str TYPE string .
DATA: post_string TYPE string ,
return_str TYPE string .
PARAMETERS: p_code(11) TYPE c OBLIGATORY DEFAULT '1381852'.
PARAMETERS: p_user(20) TYPE c .
START-OF-SELECTION .
CONCATENATE 'mobileCode=' p_code '&userID=' p_user INTO post_string.
len = STRLEN( post_string ) .
len_str = len .
CALL METHOD cl_http_client=>create
EXPORTING
host = 'webservice.webxml.com.cn'
service = '80'
scheme = '1'
proxy_host = proxy_host
proxy_service = proxy_port
IMPORTING
client = http_client.
http_client->propertytype_logon_popup = http_client->co_enabled .
* CALL METHOD http_client->authenticate
* EXPORTING
* proxy_authentication = 'X'
* username = proxy_user
* password = proxy_pass.
CALL METHOD http_client->request->set_header_field
EXPORTING
name = '~request_method'
value = 'POST'.
CALL METHOD http_client->request->set_header_field
EXPORTING
name = '~server_protocol'
value = 'HTTP/1.1'.
CALL METHOD http_client->request->set_header_field
EXPORTING
name = '~request_uri'
value = '/WebServices/MobileCodeWS.asmx/getMobileCodeInfo'.
CALL METHOD http_client->request->set_header_field
EXPORTING
name = 'Content-Type'
value = 'application/x-www-form-urlencoded'.
CALL METHOD http_client->request->set_header_field
EXPORTING
name = 'Content-Length'
value = len_str.
CALL METHOD http_client->request->set_cdata
EXPORTING
data = post_string
offset = 0
length = len.
CALL METHOD http_client->send
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2.
CALL METHOD http_client->receive
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3.
return_str = http_client->response->get_cdata( ).
CALL METHOD http_client->close.
WRITE return_str.
阅读(16118) | 评论(8) | 转发(1) |