ABAP中实现http client

现在SAP全面拥抱web和云,了解一下http的实现还是有必要的。ABAP中主要通过接口if_http_client来实现http的send, receive功能


REPORT  zhttp_client NO STANDARD PAGE HEADING.

DATAlo_http_client TYPE REF TO if_http_client,
      lv_uri         TYPE string,
      lv_results     TYPE string.
DATAitab TYPE TABLE OF string.
DATAp_code TYPE i,
      p_reason TYPE string.
*   Create an instance of the HTTP client:
CALL METHOD cl_http_client=>create_by_url
  EXPORTING
    url                'http://yourwebsite/index.html'
  IMPORTING
    client             lo_http_client
  EXCEPTIONS
    argument_not_found 1
    plugin_not_active  2
    internal_error     3
    OTHERS             4.

*   Select the HTTP GET method:
lo_http_client->request->set_method(
  if_http_request=>co_request_method_get ).

*   Submit the request:
CALL METHOD lo_http_client->send
  EXCEPTIONS
    http_communication_failure 1
    http_invalid_state         2
    http_processing_failed     3
    http_invalid_timeout       4
    OTHERS                     5.

** 得到response,这一步是必须的
CALL METHOD lo_http_client->receive
  EXCEPTIONS
    http_communication_failure 1
    http_invalid_state         2
    http_processing_failed     3.

IF sy-subrc EQ 0.
  lv_results =
    lo_http_client->response->get_cdata).


  CALL METHOD lo_http_client->response->get_status
    IMPORTING
      code   p_code
      reason p_reason.
ELSE.
*      RAISE EXCEPTION TYPE lcx_icf_exception.
ENDIF.

SPLIT lv_results AT cl_abap_char_utilities=>cr_lf INTO TABLE itab.  "把html内容放到内表

WRITE'Status:',p_codep_reason.
ULINE.
LOOP AT itab INTO lv_results.
  WRITE/ lv_results.
ENDLOOP.

*   Always remember to close the connection:
lo_http_client->close).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值