ABAP as HTTP Client
This example demonstrates an ICF HTTP client.
7.31 | 7.40 | 7.54
DATA query TYPE string VALUE 'SAP'. cl_demo_input=>request( CHANGING field = query ). cl_http_client=>create( EXPORTING host = 'wikipedia.org' service = '' IMPORTING client = DATA(client) EXCEPTIONS OTHERS = 4 ). IF sy-subrc <> 0. RETURN. ENDIF. cl_http_utility=>set_request_uri( request = client->request uri = `/wiki/` && query ). client->send( EXCEPTIONS OTHERS = 4 ). IF sy-subrc <> 0. client->get_last_error( IMPORTING message = DATA(smsg) ). cl_demo_output=>display( smsg ). RETURN. ENDIF. client->receive( EXCEPTIONS OTHERS = 4 ). IF sy-subrc <> 0. client->get_last_error( IMPORTING message = DATA(rmsg) ). cl_demo_output=>display( rmsg ). RETURN. ENDIF. DATA(html) = client->response->get_cdata( ). cl_demo_output=>display_html( html ). client->close( ).
The factory method
CREATE of the class CL_HTTP_CLIENT
is used to create a client object for the address wikipedia.org. The reference
client of the type IF_HTTP_CLIENT points
to this object. A specific request, which also contains the value of a user input, is added to the URI
of the REQUEST object of the client object. The request is sent and the result is passed to the RESPONSE
object of the client object. In the case in question, the HTML page produced by the requested is retrieved and displayed.
The proxy setting for the HTTP client must be configured correctly in transaction SICF before this example can work.