接口地址
http://jsonplaceholder.typicode.com/albums/1/photos
需求:
使用 ABAP 编程语言调用第三方接口获取数据,并以表格形式输出
*&---------------------------------------------------------------------*
*& Report ZTJR0008
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ztjr0008.
DATA: lc_http_client TYPE REF TO if_http_client, "实例化
lv_url TYPE string, "定义服务地址
lv_result TYPE string. "定义返回数据
*定义与返回数据相同的结构
TYPES: BEGIN OF ty_output,
albumid TYPE int1,
id TYPE int1,
title TYPE string,
url TYPE string,
thumbnailurl TYPE string,
END OF ty_output.
*多条数据的情况,需要定义相同结构的内表
DATA: lt_output TYPE TABLE OF ty_output.
*第三方 API 地址
lv_url = 'http://jsonplaceholder.typicode.com/albums/1/photos'.
*创建 http 请求
cl_http_client=>create_by_url( EXPORTING url = lv_url IMPORTING client = lc_http_client ).
*设置请求头
lc_http_client->request->set_header_field( EXPORTING name = 'Content-Type' value = 'application/json;charset=utf-8' ).
*设置调用方式
lc_http_client->request->set_method('GET').
*发送请求
lc_http_client->send( ).
*接受http响应
lc_http_client->receive( ).
IF sy-subrc = 0.
lv_result = lc_http_client->response->get_cdata( ).
ENDIF.
*将字符串反序列化为JSON对象,然后赋值给内表
/ui2/cl_json=>deserialize( EXPORTING json = lv_result CHANGING data = lt_output ).
*输出结果
cl_demo_output=>display( lt_output ).
*关闭http连接
lc_http_client->close( ).