메뉴 건너뛰기

SAP 한국 커뮤니티



HTTP 통신하는 로직

대략나 2016.12.20 10:28 조회 수 : 5636

FUNCTION z_http_url.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     REFERENCE(IV_URL) TYPE  CSEQUENCE
*"  EXPORTING
*"     REFERENCE(EV_RESPONSE) TYPE  CSEQUENCE
*"     REFERENCE(EO_RESPONSE) TYPE REF TO  IF_HTTP_RESPONSE
*"     REFERENCE(EV_CODE) TYPE  SYSUBRC
*"     REFERENCE(EV_MESSAGE) TYPE  STRING
*"----------------------------------------------------------------------
* URL 을 입력 받아서 http 통신하고 응답 받은 내용은 string 으로 반환한다.

  DATAlo_client TYPE REF TO if_http_client,
        lv_url TYPE string.

  CHECKiv_url IS NOT INITIAL.
  lv_url iv_url.
  FIND REGEX '^https?://' IN lv_url IGNORING CASE.
  IF sy-subrc <> 0.
    CONCATENATE 'http://' lv_url INTO lv_url.
  ENDIF.

  cl_http_client=>create_by_url(
    EXPORTING
      url                lv_url
    IMPORTING
      client             lo_client
    EXCEPTIONS
      argument_not_found 1
      plugin_not_active  2
      internal_error     3
      OTHERS             4
  ).
  CHECKsy-subrc EQ 0.

  lo_client->send(
    EXCEPTIONS
      http_communication_failure 1
      http_invalid_state         2
      http_processing_failed     3
      http_invalid_timeout       4
      OTHERS                     5
  ).
*  CHECK: sy-subrc EQ 0.
  IF sy-subrc <> 0.
    lo_client->get_last_error(
      IMPORTING
        code ev_code
        message ev_message
    ).
  ENDIF.

  lo_client->receive(
    EXCEPTIONS
      http_communication_failure 1
      http_invalid_state         2
      http_processing_failed     3
      OTHERS                     4
  ).
*  CHECK: sy-subrc EQ 0.
  IF sy-subrc <> 0.
    lo_client->get_last_error(
      IMPORTING
        code ev_code
        message ev_message
    ).
  ENDIF.

  IF lo_client->response IS NOT INITIAL.
    eo_response lo_client->response.
    ev_response lo_client->response->get_cdata).
  ENDIF.



ENDFUNCTION.
번호 제목 글쓴이 날짜 조회 수
107 스크린에서 버튼을 tree 처럼 만들기. [32] file Jenny 2011.08.11 17656
106 SELECT-OPTIONS 문법 [5] sapjoy 2006.12.28 4967
105 Report SELECTION-SCREEN에서 Tab Strips 사용 하는 Sample Program [7] file 소주와 막걸리 2009.04.01 8234
104 ALV EDIT 샘플 프로그램 sapjoy 2015.06.26 9246
103 Tree ALV 샘플 [5] 양키(이경환) 2014.02.05 10516
102 Split 의 사용 [1] 양키(이경환) 2014.02.05 10670
101 소수점 뒷자리 0 제거 로직 file 양키(이경환) 2014.01.19 9430
100 Search For Program/Function/Table Desc&Name [8] file 초짜 2011.09.30 9830
99 Select-Options 의 Extension 에 제한을 주는 방법 [5] icarus 2007.11.15 10824
98 ALV Row Color 지정하는 소스. [3] 나침반친구 2007.05.28 12856
97 smartform to pdf AND MAIL [6] sapjoy 2007.05.22 8279
96 모든 사용자의 화면에 메세지를 보내는 소스 [4] file 아밥공주 2007.04.02 5004
95 KR_POSTCODE : 한국주소입력 Version 2.0 대략나 2021.03.31 982
» HTTP 통신하는 로직 [3] 대략나 2016.12.20 5636
93 XML 을 아밥 스트럭쳐 또는 인터널테이블로 변경시키는 로직 [1] 대략나 2016.12.20 3791
92 파일 메일(e-mail) 첨부로 보내기 [2] sapjoy 2014.10.10 7182
91 데이터 이메일(e-mail) xls 파일로 보내기 [2] sapjoy 2014.10.10 6675
90 10이하의 홀수 마방진 은미짱 2013.10.18 6788
89 [Module pool] Container에 webpage 넣기. [2] 냥냥 2013.03.19 11196
88 COMAPY CODE에 할당된 Fiscal variant에 대한 calendar date 변환 paran 2013.02.28 10463