메뉴 건너뛰기

SAP 한국 커뮤니티



HTTP 통신하는 로직

대략나 2016.12.20 19:28 조회 수 : 5914

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 KR_POSTCODE : 한국주소입력 Version 2.0 대략나 2021.03.31 2201
» HTTP 통신하는 로직 [3] 대략나 2016.12.20 5914
105 XML 을 아밥 스트럭쳐 또는 인터널테이블로 변경시키는 로직 [1] 대략나 2016.12.20 3918
104 ALV EDIT 샘플 프로그램 sapjoy 2015.06.26 9323
103 파일 메일(e-mail) 첨부로 보내기 [2] sapjoy 2014.10.10 7368
102 데이터 이메일(e-mail) xls 파일로 보내기 [2] sapjoy 2014.10.10 6730
101 Tree ALV 샘플 [5] 양키(이경환) 2014.02.05 10671
100 Split 의 사용 [1] 양키(이경환) 2014.02.05 11236
99 소수점 뒷자리 0 제거 로직 file 양키(이경환) 2014.01.20 9618
98 10이하의 홀수 마방진 은미짱 2013.10.19 6830
97 [Module pool] Container에 webpage 넣기. [2] 냥냥 2013.03.20 11238
96 COMAPY CODE에 할당된 Fiscal variant에 대한 calendar date 변환 paran 2013.03.01 10505
95 멀 어떻게 해야 하는건질 몰라 질문 드립니다 [5] 쏠라맨 2012.10.13 11704
94 nugg 프로그램을 sap 에 생성하기.. [3] file MadMax 2012.10.11 10891
93 인터널 테이블을 사용한 구구단 출력 두가지 입니다 - WRITE, ALV 이용 [1] kofnhuge 2012.10.10 14127
92 Search For Program/Function/Table Desc&Name [8] file 초짜 2011.09.30 9863
91 스크린에서 버튼을 tree 처럼 만들기. [32] file Jenny 2011.08.12 17707
90 통화단위, krw, usd 일반 필드에 변환시 로직(소수점, 자리수) [4] sapjoy 2011.07.20 15638
89 Dynamic Select 소스 [5] 떡밥 2011.06.04 17828
88 [onepaper] 참고자료 Archiving 세팅에 필요한 파일소스입니다. [7] file 원니컴 2011.03.22 13831