REPORT zpw_webservice. *&---------------------------------------------------------------------* *& Selection Screen *&---------------------------------------------------------------------* PARAMETERS : p_cnt TYPE t005t-landx . *&---------------------------------------------------------------------* *& Types and Data *&---------------------------------------------------------------------* DATA : http_client TYPE REF TO if_http_client , http_url TYPE string , p_content TYPE string . *&---------------------------------------------------------------------* *& Start of Selection *&---------------------------------------------------------------------* START-OF-SELECTION . * Build the url string based on input '/GetCitiesByCountry?CountryName=' p_cnt INTO http_url . * Creation of new IF_HTTP_Client object CALL METHOD cl_http_client=>create_by_url EXPORTING url = http_url IMPORTING client = http_client EXCEPTIONS argument_not_found = 1 plugin_not_active = 2 internal_error = 3 OTHERS = 4. http_client->request->set_header_field( name = '~request_method' value = 'GET' ). * Send the request http_client->send( ). * Reterive the result CALL METHOD http_client->receive EXCEPTIONS http_communication_failure = 1 http_invalid_state = 2 http_processing_failed = 3 OTHERS = 4. p_content = http_client->response->get_cdata( ). REPLACE ALL OCCURRENCES OF '<' IN p_content WITH '<' . REPLACE ALL OCCURRENCES OF '>' IN p_content WITH '>' . *&---------------------------------------------------------------------* *& Processing string *&---------------------------------------------------------------------* DATA : moff TYPE syst-tabix , moff1 TYPE syst-tabix , len TYPE syst-tabix . DO . FIND '<City>' IN SECTION OFFSET moff OF p_content IGNORING CASE MATCH OFFSET moff . IF sy-subrc = 0 . moff = moff + 6 . FIND '</City>' IN SECTION OFFSET moff OF p_content IGNORING CASE MATCH OFFSET moff1 . len = moff1 - moff . WRITE : / p_content+moff(len) . ELSE . EXIT . ENDIF . ENDDO .
|
0 Comments