REPORT ZMJ_GETAPI.

DATA: LEN         TYPE        I, "发送报文长度

      LEN_STRING  TYPE        STRING,

      URL         TYPE        STRING, "接口地址

      HTTP_CLIENT TYPE REF TO IF_HTTP_CLIENT, "http客户端

      POST_STRING TYPE        STRING,

      RESULT      TYPE        STRING.

DATA: IT_HEADER  TYPE TIHTTPNVP,

      GV_JSON_IN TYPE STRING VALUE '{"IT_INPUT":[{"CUSTOMER":"12345678","PERNR":"00190935"}]}'.

START-OF-SELECTION.

  URL = 'http://10.*.*.*:8001/api_sapnew/ZIF_DATA'.

  "'http://10.X.X.X:8081/api/test/gettest'.

  "创建http客户端

  CALL METHOD CL_HTTP_CLIENT=>CREATE_BY_URL

    EXPORTING

      URL                = URL

    IMPORTING

      CLIENT             = HTTP_CLIENT

    EXCEPTIONS

      ARGUMENT_NOT_FOUND = 1

      PLUGIN_NOT_ACTIVE  = 2

      INTERNAL_ERROR     = 3

      OTHERS             = 4.

  "设定传输请求内容格式以及编码格式

  HTTP_CLIENT->REQUEST->SET_CONTENT_TYPE( CONTENT_TYPE = 'application/json; charset=utf-8' ).

  "设置http method 为Get

  HTTP_CLIENT->REQUEST->SET_METHOD( IF_HTTP_REQUEST=>CO_REQUEST_METHOD_POST ).

  "IF_HTTP_ENTITY~CO_REQUEST_METHOD_GET

  "设置待传输内容长度

  LEN = STRLEN( GV_JSON_IN ).

  "设置调用方法

  CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD

    EXPORTING

      NAME  = '~request_method'

      VALUE = 'POST'.

  "设置传入字符串

  CALL METHOD HTTP_CLIENT->REQUEST->SET_CDATA

    EXPORTING

      DATA   = GV_JSON_IN

      OFFSET = 0

      LENGTH = LEN.

  "发送

  CALL METHOD HTTP_CLIENT->SEND

    EXCEPTIONS

      HTTP_COMMUNICATION_FAILURE = 1

      HTTP_INVALID_STATE         = 2

      HTTP_PROCESSING_FAILED     = 3

      HTTP_INVALID_TIMEOUT       = 4

      OTHERS                     = 5.

  "接收

  CALL METHOD HTTP_CLIENT->RECEIVE

    EXCEPTIONS

      HTTP_COMMUNICATION_FAILURE = 1

      HTTP_INVALID_STATE         = 2

      HTTP_PROCESSING_FAILED     = 3.

  "提取返回字符串

  RESULT = HTTP_CLIENT->RESPONSE->GET_CDATA( ).

  "将字符串中的回车符替换,否则abap将会识别为#

  REPLACE ALL OCCURRENCES OF REGEX '\n' IN RESULT WITH SPACE.

  "获取接口返回的数据

*  RESULT = HTTP_CLIENT->RESPONSE->GET_CDATA( ).

  WRITE: RESULT.

sap 调用Http 服务的更多相关文章

  1. SOA 架构中的ESB是更好的应用于异构系统集成整合还是用于统一服务调用/基础服务实施

    一.讨论主题与观点 写一篇文章.发现一次自觉得有意思的SOA架构方面的讨论,源于昨天AgileEAS.NET SOA 平台群(113723486)里几个群友的一次关于ESB的一次讨论. 大家的讨论观点 ...

  2. 【Java EE 学习 80 下】【调用WebService服务的四种方式】【WebService中的注解】

    不考虑第三方框架,如果只使用JDK提供的API,那么可以使用三种方式调用WebService服务:另外还可以使用Ajax调用WebService服务. 预备工作:开启WebService服务,使用jd ...

  3. ajax内调用WCF服务

    WCF可以当作WebService一样被调用,在html内通过ajax调用WCF服务的方法如下: 1.新建一个WCF服务的网站项目: 2.在项目内增加一个新项:启用了ajax的WCF服务: 3.在对应 ...

  4. 完全使用接口方式调用WCF 服务

    客户端调用WCF服务可以通过添加服务引用的方式添加,这种方式使用起来比较简单,适合小项目使用.服务端与服务端的耦合较深,而且添加服务引用的方式生成一大堆臃肿的文件.本例探讨一种使用接口的方式使用WCF ...

  5. 关于 C# 调用 JavaWebservice服务,版本不一致的问题

    1. A SOAP 1.2 message is not valid when sent to a SOAP 1.1 only endpoint.   问题原因: 客户端和服务端的SOAP协议版本不一 ...

  6. 实现在GET请求下调用WCF服务时传递对象(复合类型)参数

    WCF实现RESETFUL架构很容易,说白了,就是使WCF能够响应HTTP请求并返回所需的资源,如果有人不知道如何实现WCF支持HTTP请求的,可参见我之前的文章<实现jquery.ajax及原 ...

  7. 实现jquery.ajax及原生的XMLHttpRequest跨域调用WCF服务的方法

    关于ajax跨域调用WCF服务的方法很多,经过我反复的代码测试,认为如下方法是最为简便的,当然也不能说别人的方法是错误的,下面就来上代码,WCF服务定义还是延用上次的,如: namespace Wcf ...

  8. 实现jquery.ajax及原生的XMLHttpRequest调用WCF服务的方法

    废话不多说,直接讲解实现步骤 一.首先我们需定义支持WEB HTTP方法调用的WCF服务契约及实现服务契约类(重点关注各attribute),代码如下: //IAddService.cs namesp ...

  9. .NET Core 调用WCF 服务

    .NET Core 和ASP.NET Core 已经可以调用WCF 服务. 环境要求: VS2015 Update 2 +VS2015 Tooling + .NET Core SDK 下载地址: ht ...

随机推荐

  1. Blazor 使用拖放(drag and drop)上传文件

    在很多上传文件的应用实例中, 都可以看到[拖放文件到此上传]这种骚功能 ,今天我们就来试试Blazor能不能完成这个想法. 简述HTML5拖放 拖放是HTML5标准的一部分,任何元素都能够拖放,也能够 ...

  2. 面试官:为什么Vue中的v-if和v-for不建议一起用?

    一.作用 v-if 指令用于条件性地渲染一块内容.这块内容只会在指令的表达式返回 true值的时候被渲染 v-for 指令基于一个数组来渲染一个列表.v-for 指令需要使用 item in item ...

  3. git 在 pull 或者合并分支的时候会遇到下图这个界面

      可以不管(直接进入 3, 4 步), 如果要输入解释的话就需要 按键盘字母 i 进入 insert 模式 修改最上面那行黄色合并信息,可以不修改 // 黄色内容为默认的合并信息; 按键盘左上角 & ...

  4. SerialPort-4.0.+ 使用说明(Kotlin版本)

    SerialPort-4.0.+ 项目官网 Java版本使用说明 介绍 SerialPort 是一个开源的对 Android 蓝牙串口通信的轻量封装库,轻松解决了构建自己的串口调试APP的复杂程度,让 ...

  5. JS基础代码

    1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...

  6. 一文学会text-justify,orientation,combine文本属性

    大家好,我是半夏,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注 点赞 加我微信:frontendpicker,一起学习交流前端,成为更优秀的工程师-关注公众号:搞前端的半夏,了解更多前端知 ...

  7. CA周记 - 带你进⼊ OpenAI 的世界

    2021年11月的 Microsoft Ignite , 微软带来了全新的 Azure OpenAI Service,通过新的 Azure 认知服务能够访问 OpenAI 强大的 GPT-3 模型 . ...

  8. R树判断点在多边形内-Java版本

    1.什么是RTree 待补充 2.RTree java依赖 rtree的java开源版本在GitHub上:https://github.com/davidmoten/rtree 上面有详细的使用说明 ...

  9. 二、深入学习c++需要掌握的基础知识

    一.掌握形参带默认值的函数 给定默认值的时候是从右向左给,因为函数在内存中的压栈顺序是按照形参列表的元素从右向左依次向内存中压栈 形参是否有默认值对调用效率的问题:如果有一个默认值,在函数调用的过程中 ...

  10. mysqldump速查手册

    一.mysqldump用法 1.1 常见选项 --all-databases, -A: 备份所有数据库 --databases, -B: 用于备份多个数据库,如果没有该选项,mysqldump把第一个 ...