SAP Tutorials Blog

 

 


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

  CONCATENATE 'http://www.webservicex.net/globalweather.asmx'

  '/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 '&lt;' IN p_content WITH '<' .

  REPLACE  ALL OCCURRENCES OF '&gt;' 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 .


Serkan AKKAVAK

Computer Engineer BSc

SAP Department Manager

Contact : serkurumsal@yandex.com