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