ABAP calls Qixinbao HTTP restful API instance

The method parameters are defined as follows. The
Insert picture description heresource code is as follows

 method qxb_http_get.

    data:lv_url type string.

    "===============初始化===============================================
    "获取http实例
    cl_http_client=>create_by_destination(
    exporting
      destination = space
    importing
    client = data(lo_client)
          ).

    "设置请求方法为Get(也可通过post实现)
    lo_client->request->set_method( if_http_request=>co_request_method_get ).

    "设置get方法query string
    lv_url = method.

    "=====================查询条件=======================================
	"从SO10文本对象获取维护好的密钥,也可以直接写死
    data(lv_appkey) = zcl_common_fm=>read_so10(
      iv_name = conv tdobname( space )
    ).

    "appkey访问密钥
    lo_client->append_field_url(
    exporting
      name = conv string( 'appkey')
      value =   lv_appkey
    changing
      url = lv_url
      ).

    "特定查询条件
    loop at filter_tab into data(ls_filter).
      lo_client->append_field_url(
      exporting
      name = ls_filter-name
      value =   ls_filter-value
      changing
        url = lv_url
        ).
    endloop.

    cl_http_utility=>set_request_uri(
    exporting
      request = lo_client->request
      uri     = lv_url     " URI String (in the Form of /path?query-string)
      ).

    "设置请求抬头信息
    lo_client->request->set_version( if_http_request=>co_protocol_version_1_1 ).

    "=================发送请求并接受响应============================
    lo_client->send( ).

    lo_client->receive( ).

    lo_client->response->get_status(
    importing
      code = data(lv_response_code)
      reason = data(lv_response_reson)
    ).

    code = conv char3( lv_response_code ).
    if lv_response_code ne 200.
      RAISE  api_error.
      return.
    endif.

    data(lv_response_data) = lo_client->response->get_data( ).

    lo_client->close( ).

    "================处理返回结果============================

    data(lv_json_string) = cl_abap_codepage=>convert_from( lv_response_data ).
    result = lv_json_string.

  endmethod.

Guess you like

Origin blog.csdn.net/u012232542/article/details/108099625