1. REPORT ZMJ_GETAPI.
  2.  
  3. DATA: LEN TYPE I, "发送报文长度
  4.  
  5. LEN_STRING TYPE STRING,
  6.  
  7. URL TYPE STRING, "接口地址
  8.  
  9. HTTP_CLIENT TYPE REF TO IF_HTTP_CLIENT, "http客户端
  10.  
  11. POST_STRING TYPE STRING,
  12.  
  13. RESULT TYPE STRING.
  14.  
  15. DATA: IT_HEADER TYPE TIHTTPNVP,
  16.  
  17. GV_JSON_IN TYPE STRING VALUE '{"IT_INPUT":[{"CUSTOMER":"12345678","PERNR":"00190935"}]}'.
  18.  
  19. START-OF-SELECTION.
  20.  
  21. URL = 'http://10.*.*.*:8001/api_sapnew/ZIF_DATA'.
  22.  
  23. "'http://10.X.X.X:8081/api/test/gettest'.
  24.  
  25. "创建http客户端
  26.  
  27. CALL METHOD CL_HTTP_CLIENT=>CREATE_BY_URL
  28.  
  29. EXPORTING
  30.  
  31. URL = URL
  32.  
  33. IMPORTING
  34.  
  35. CLIENT = HTTP_CLIENT
  36.  
  37. EXCEPTIONS
  38.  
  39. ARGUMENT_NOT_FOUND = 1
  40.  
  41. PLUGIN_NOT_ACTIVE = 2
  42.  
  43. INTERNAL_ERROR = 3
  44.  
  45. OTHERS = 4.
  46.  
  47. "设定传输请求内容格式以及编码格式
  48.  
  49. HTTP_CLIENT->REQUEST->SET_CONTENT_TYPE( CONTENT_TYPE = 'application/json; charset=utf-8' ).
  50.  
  51. "设置http method 为Get
  52.  
  53. HTTP_CLIENT->REQUEST->SET_METHOD( IF_HTTP_REQUEST=>CO_REQUEST_METHOD_POST ).
  54.  
  55. "IF_HTTP_ENTITY~CO_REQUEST_METHOD_GET
  56.  
  57. "设置待传输内容长度
  58.  
  59. LEN = STRLEN( GV_JSON_IN ).
  60.  
  61. "设置调用方法
  62.  
  63. CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
  64.  
  65. EXPORTING
  66.  
  67. NAME = '~request_method'
  68.  
  69. VALUE = 'POST'.
  70.  
  71. "设置传入字符串
  72.  
  73. CALL METHOD HTTP_CLIENT->REQUEST->SET_CDATA
  74.  
  75. EXPORTING
  76.  
  77. DATA = GV_JSON_IN
  78.  
  79. OFFSET = 0
  80.  
  81. LENGTH = LEN.
  82.  
  83. "发送
  84.  
  85. CALL METHOD HTTP_CLIENT->SEND
  86.  
  87. EXCEPTIONS
  88.  
  89. HTTP_COMMUNICATION_FAILURE = 1
  90.  
  91. HTTP_INVALID_STATE = 2
  92.  
  93. HTTP_PROCESSING_FAILED = 3
  94.  
  95. HTTP_INVALID_TIMEOUT = 4
  96.  
  97. OTHERS = 5.
  98.  
  99. "接收
  100.  
  101. CALL METHOD HTTP_CLIENT->RECEIVE
  102.  
  103. EXCEPTIONS
  104.  
  105. HTTP_COMMUNICATION_FAILURE = 1
  106.  
  107. HTTP_INVALID_STATE = 2
  108.  
  109. HTTP_PROCESSING_FAILED = 3.
  110.  
  111. "提取返回字符串
  112.  
  113. RESULT = HTTP_CLIENT->RESPONSE->GET_CDATA( ).
  114.  
  115. "将字符串中的回车符替换,否则abap将会识别为#
  116.  
  117. REPLACE ALL OCCURRENCES OF REGEX '\n' IN RESULT WITH SPACE.
  118.  
  119. "获取接口返回的数据
  120.  
  121. * RESULT = HTTP_CLIENT->RESPONSE->GET_CDATA( ).
  122.  
  123. 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 生命周期

    执行周期 1. SetParametersAsync 2. OnInitializedAsync(调用两次) 和 OnInitialized: 3. OnParametersSetAsync 或 On ...

  2. 3种方法改变this的指向

    <body>     <div style="width: 200px;height: 200px;hotpink;"></div>     & ...

  3. Redis4.0.14 迁槽失败

    线上一个redis集群中主节点使用的内存达到了9.78g,按照redis单个实例最大内存不要超出10g的规范,扩容操作就放在了今天晚上进行.因为之前redis迁槽都是采用 redis-trib.rb ...

  4. 1903021116—吉琛—Java第七周作业—客户类测试

    项目 内容 课程班级博客链接 19信计班 这个作业要求链接 第七周作业链接 博客名称 学号-姓名-Java第七周作业-客户类测试 要求 每道题要有题目,代码(使用插入代码,不会插入代码的自己查资料解决 ...

  5. Java语言学习day13--7月14日

    今日内容介绍1.循环练习2.数组方法练习 ###01奇数求和练习 * A: 奇数求和练习 * a: 题目分析 * 为了记录累加和的值,我们需要定义一个存储累加和的变量 * 我们要获取到1-100范围内 ...

  6. .NET桌面程序应用WebView2组件集成网页开发4 WebView2的线程模型

    系列目录     [已更新最新开发文章,点击查看详细] WebView2控件基于组件对象模型(COM),必须在单线程单元(STA)线程上运行. 线程安全 WebView2必须在使用消息泵的UI线程上创 ...

  7. javaScript中Number数字类型方法入门

    前言 Number和Math都属于JavaScript中的内置对象,Number数字类型作为基础数据类型,我们在开发过程中会经常用到,包括数字精度的格式化,还有字符串转换成数字等操作. Number数 ...

  8. Windows常用cmd命令总结

    cmd是command的缩写,即命令提示符. 运行操作: 使用"Win+R"快捷键召唤出运行窗口,再在运行中输入cmd即可. 1.ping 用法: 常用举例: ping www.g ...

  9. 分享一下 Idea 的 scope 功能

    分享一下 Idea 的 scope 功能 事情的起因是我在使用 idea 的call hierarchy功能时,觉得它没有像find usage那样有排除功能,并且如果点击了展开全部,当代码中使用了某 ...

  10. 3┃音视频直播系统之浏览器中通过 WebRTC 直播视频实时录制回放下载

    一.录制分类 在音视频会议.在线教育等系统中,录制是一个特别重要的功能 录制一般分为服务端录制和客户端录制 服务端录制:优点是不用担心客户因自身电脑问题造成录制失败(如磁盘空间不足),也不会因录制时抢 ...