sap 調用Http 服務


REPORT ZMJ_GETAPI.

 

 

DATA: LEN         TYPE        I, "發送報文長度

      LEN_STRING  TYPE        STRING,

      URL         TYPE        STRING, "接口地址

      HTTP_CLIENT TYPE REF TO IF_HTTP_CLIENT, "http客戶端

      POST_STRING TYPE        STRING,

      RESULT      TYPE        STRING.

DATA: IT_HEADER  TYPE TIHTTPNVP,

      GV_JSON_IN TYPE STRING VALUE '{"IT_INPUT":[{"CUSTOMER":"12345678","PERNR":"00190935"}]}'.

START-OF-SELECTION.

  URL = 'http://10.*.*.*:8001/api_sapnew/ZIF_DATA'.

  "'http://10.X.X.X:8081/api/test/gettest'.

 

  "創建http客戶端

  CALL METHOD CL_HTTP_CLIENT=>CREATE_BY_URL

    EXPORTING

      URL                = URL

    IMPORTING

      CLIENT             = HTTP_CLIENT

    EXCEPTIONS

      ARGUMENT_NOT_FOUND = 1

      PLUGIN_NOT_ACTIVE  = 2

      INTERNAL_ERROR     = 3

      OTHERS             = 4.

  "設定傳輸請求內容格式以及編碼格式

  HTTP_CLIENT->REQUEST->SET_CONTENT_TYPE( CONTENT_TYPE = 'application/json; charset=utf-8' ).

 

  "設置http method 為Get

  HTTP_CLIENT->REQUEST->SET_METHOD( IF_HTTP_REQUEST=>CO_REQUEST_METHOD_POST ).

  "IF_HTTP_ENTITY~CO_REQUEST_METHOD_GET

 

  "設置待傳輸內容長度

  LEN = STRLEN( GV_JSON_IN ).

  "設置調用方法

  CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD

    EXPORTING

      NAME  = '~request_method'

      VALUE = 'POST'.

  "設置傳入字符串

  CALL METHOD HTTP_CLIENT->REQUEST->SET_CDATA

    EXPORTING

      DATA   = GV_JSON_IN

      OFFSET = 0

      LENGTH = LEN.

  "發送

  CALL METHOD HTTP_CLIENT->SEND

    EXCEPTIONS

      HTTP_COMMUNICATION_FAILURE = 1

      HTTP_INVALID_STATE         = 2

      HTTP_PROCESSING_FAILED     = 3

      HTTP_INVALID_TIMEOUT       = 4

      OTHERS                     = 5.

 

  "接收

  CALL METHOD HTTP_CLIENT->RECEIVE

    EXCEPTIONS

      HTTP_COMMUNICATION_FAILURE = 1

      HTTP_INVALID_STATE         = 2

      HTTP_PROCESSING_FAILED     = 3.

  "提取返回字符串

  RESULT = HTTP_CLIENT->RESPONSE->GET_CDATA( ).

  "將字符串中的回車符替換,否則abap將會識別為#

  REPLACE ALL OCCURRENCES OF REGEX '\n' IN RESULT WITH SPACE.

  "獲取接口返回的數據

*  RESULT = HTTP_CLIENT->RESPONSE->GET_CDATA( ).

 

  WRITE: RESULT.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM