IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> SAP之Http Rest接口发布 -> 正文阅读

[网络协议]SAP之Http Rest接口发布

一、SE24创建类:Z_HCX_HTTP

1、创建类:

2、切换到接口(interface)页签,输入IF_HTTP_EXTENSION ,回车。切换到方法(method)页签,双击IF_HTTP_EXTENSION~HANDLE_REQUEST进入代码编辑界面。

IF_HTTP_EXTENSION~HANDLE_REQUEST方法编写代码:

   METHOD if_http_extension~handle_request.
     DATA: BEGIN OF ls_data,
             matnr TYPE matnr,
             maktx TYPE maktx,
           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.  "获取传回值数据


*    获取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
       EXPORTING
         content_type = 'application/json'.

     CASE lv_method.
       WHEN 'GET'.
*        获取数据
         SELECT matnr maktx INTO CORRESPONDING FIELDS OF TABLE lt_data
           FROM makt
           UP TO 20 ROWS.

*        内表转换JSON
         CALL METHOD /ui2/cl_json=>serialize
           EXPORTING
             data   = lt_data
           RECEIVING
             r_json = lv_json.

*        将行数据JSON返回给调用端
         server->response->set_cdata(
           EXPORTING
             data   = lv_json
         ).

         server->response->set_status( code = 200 reason = 'OK' ).
       WHEN 'POST'.
*        获取JSON行数据
         lv_json1 = server->request->if_http_entity~get_cdata( ).
*        解析json至内表方法1
         /ui2/cl_json=>deserialize( EXPORTING json = lv_json1
                                     CHANGING data = ls_data ).
         IF NOT lv_json1 IS INITIAL.
*          获取数据
           SELECT matnr maktx INTO CORRESPONDING FIELDS OF TABLE lt_data
             FROM makt
             UP TO 20 ROWS
             where matnr = ls_data-matnr.
*         内表转换json
           CALL METHOD /ui2/cl_json=>serialize
             EXPORTING
               data   = lt_data
             RECEIVING
               r_json = lv_json.
*        将行数据JSON返回给调用端
           server->response->set_cdata(
             EXPORTING
               data   = lv_json
           ).
         ENDIF.

         LOOP AT lt_fields INTO DATA(ls_fields).
           CASE ls_fields-name.
             WHEN 'lt_data'.
               lv_json2 = ls_fields-value.
           ENDCASE.
         ENDLOOP.
*        解析json至内表方法1
         /ui2/cl_json=>deserialize( EXPORTING json = lv_json2
                                     CHANGING data = lt_data ).

         IF NOT lv_json2 IS INITIAL.
*        将行数据JSON返回给调用端
           server->response->set_cdata(
             EXPORTING
               data   = 'SoapUi传参已收到'
           ).
         ENDIF.
         server->response->set_status( code = 200 reason = 'OK' ).

     ENDCASE.
   ENDMETHOD.

二、使用事务码?SICF?在?default_host/sap?节点下面创建子节点,用?Z_HCX_HTTP?类并激活方法:

1、创建子元素:

之后点击保存。

2、在default_host/sap中找到刚刚创建的子元素:Z_HCX_HTTP激活服务:

3、获取URL调用地址:

直接打开默认是GET请求:

但是像企业微信这样的第三方访问时,该URL不是真正的URL,找BASIS要URL。

在Postman 中测试post请求:

在SoapUI 中测试post请求:

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-06-25 18:24:32  更:2022-06-25 18:24:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:11:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码