一、SE24 创建类 ZTEST_RESTFUL_HTTP_INTERFACE
1、SE24创建类
2、切换到接口(interface)页签,输入IF_HTTP_EXTENSION ,回车。切换到方法(method)页签,双击IF_HTTP_EXTENSION~HANDLE_REQUEST进入代码编辑界面。
3.在IF_HTTP_EXTENSION~HANDLE_REQUEST方法中编写代码:(注:文末附另一种写法)
method if_http_extension~handle_request.
data: begin of ls_data,
matnr type matnr,
ernam type ernam,
matkl type matkl,
end of ls_data.
data: lt_data like table of ls_data.
data: lt_fields type tihttpnvp.
field-symbols: <fs_field> like line of lt_fields.
data: lv_method type string. "获取GET/POST方式
data: lv_json type string, "返回参数
lv_json1 type string, "获取传回值数据
lv_json2 type string. "获取传回值数据
data: lv_paramas type string.
data: begin of ls_request_data,
matnr type matnr,
maktx type maktx,
end of ls_request_data.
data: it_request_data like table of ls_request_data.
data: begin of ls_field_praramas,
field type string,
value type string,
end of ls_field_praramas.
* data: it_field_praramas like table of ls_field_praramas.
data: it_praramas type table of string,
ls_praramas type string.
data: lv_cond type string.
* 获取JSON抬头数据
server->request->get_header_fields(
changing
fields = lt_fields
).
lv_method = server->request->get_header_field( name = '~request_method' )."获取GET/POST方式
call method server->response->if_http_entity~set_content_type "设置返回JSON格式
exporting
content_type = 'application/json'.
case lv_method.
when 'GET'.
clear lv_cond.
lv_paramas = server->request->get_header_field( name = '~query_string' )."获取地址变量参数
split lv_paramas at '&' into table it_praramas.
loop at it_praramas into ls_praramas.
split ls_praramas at '=' into ls_field_praramas-field ls_field_praramas-value.
translate ls_field_praramas-field to lower case.
if ls_field_praramas-field <> 'sap-client'.
ls_field_praramas-value = '''' && ls_field_praramas-value && ''''.
if lv_cond = space.
c