SAP的代码向www发送http请求的过程

简介: SAP的代码向www发送http请求,这句话像是在搞笑一样。但是仔细想想我们随便打开个浏览器访问个网址,就是在向www发送http请求,这有什么搞笑的呢?SAP既是应用也是开发环境,对外发送个http请求是很正常的。

SAP的代码向www发送http请求,这句话像是在搞笑一样。但是仔细想想我们随便打开个浏览器访问个网址,就是在向www发送http请求,这有什么搞笑的呢?SAP既是应用也是开发环境,对外发送个http请求是很正常的。
那么SAP的http请求代码如何写呢?下面是一个例子:

   "实例化1个 IF_HTTP_CLIENT 的对象得到HTTP_CLIENT
    CL_HTTP_CLIENT=>CREATE_BY_URL(
               EXPORTING URL    = S_URL                "输入参数
               IMPORTING CLIENT = HTTP_CLIENT ).

    "设置某个特定的header field的值
    HTTP_CLIENT->REQUEST->SET_HEADER_FIELD(
            EXPORTING
                 NAME  = '~SERVER_PROTOCOL'
                 VALUE = 'HTTP/1.1' ).

    "设置某个特定的header field的值
    CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
      EXPORTING
        NAME  = 'CONTENT-TYPE'
        VALUE = 'APPLICATION/XML'.

    "设置某个特定的header field的值
    HTTP_CLIENT->REQUEST->SET_HEADER_FIELD(
          EXPORTING
               NAME  = 'ACCEPT'
               VALUE = '*/*' ).
    "设置http请求的方法GET 或者 POST
    CALL METHOD HTTP_CLIENT->REQUEST->SET_METHOD( 'POST' ).
    "设置http body
    CALL METHOD HTTP_CLIENT->REQUEST->SET_CDATA
      EXPORTING
        DATA = S_BODYDATA.                             "输入参数
   "dispatch of data
    CALL METHOD HTTP_CLIENT->SEND
      EXCEPTIONS
        HTTP_COMMUNICATION_FAILURE = 1
        HTTP_INVALID_STATE         = 2.
    "receipt of http response
    CALL METHOD HTTP_CLIENT->RECEIVE
      EXCEPTIONS
        HTTP_COMMUNICATION_FAILURE = 1
        HTTP_INVALID_STATE         = 2
        HTTP_PROCESSING_FAILED     = 3.
    "获取response中的http的body内容
    S_RETURN = HTTP_CLIENT->RESPONSE->GET_CDATA( ).  "执行结果
    "关闭http链接
    CALL METHOD HTTP_CLIENT->CLOSE.

上述代码是不是很枯燥?是
这是sap中abap代码的规范写法?逻辑是什么呢?
我觉得,sap的pa教材和官方help网站中并没有这样微观的给出,sap向www发送http请求的具体代码的规范,并没有。
我们还是逐句看看上述代码的含义吧。

  1. CL_HTTP_CLIENT=>CREATE_BY_URL()方法
    在SE80中看到这个类的这个方法,右键查看这个方法的属性

image
image
看到上图,就相当于看到了java的api
我们再看看这个类本身的属性:这个类完全是SAP提供的
image
image
这个方法的输入参数是
image
方法的执行结果是得到了一个IF_HTTP_CLIENT对象的实例。

目录
相关文章
|
20天前
|
JSON Java 数据格式
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
72 25
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
|
1天前
|
JSON JavaScript 前端开发
什么是HTTP POST请求?初学者指南与示范
HTTP POST请求是一种常用的HTTP方法,主要用于向服务器发送数据。通过合理设置请求头和请求主体,可以实现数据的可靠传输。无论是在客户端使用JavaScript,还是在服务器端使用Node.js,理解和掌握POST请求的工作原理和应用场景,对于Web开发至关重要。
41 18
|
1天前
|
JSON 数据格式
.net HTTP请求类封装
`HttpRequestHelper` 是一个用于简化 HTTP 请求的辅助类,支持发送 GET 和 POST 请求。它使用 `HttpClient` 发起请求,并通过 `Newtonsoft.Json` 处理 JSON 数据。示例展示了如何使用该类发送请求并处理响应。注意事项包括:简单的错误处理、需安装 `Newtonsoft.Json` 依赖,以及建议重用 `HttpClient` 实例以优化性能。
36 2
|
18天前
|
Web App开发 大数据 应用服务中间件
什么是 HTTP Range请求(范围请求)
HTTP Range 请求是一种非常有用的 HTTP 功能,允许客户端请求资源的特定部分,从而提高传输效率和用户体验。通过合理使用 Range 请求,可以实现断点续传、视频流播放和按需加载等功能。了解并掌握 HTTP Range 请求的工作原理和应用场景,对开发高效的网络应用至关重要。
57 15
|
1月前
|
开发者
HTTP 协议请求方法的发展历程
【10月更文挑战第21天】
|
22天前
|
数据采集 JSON 测试技术
Grequests,非常 Nice 的 Python 异步 HTTP 请求神器
在Python开发中,处理HTTP请求至关重要。`grequests`库基于`requests`,支持异步请求,通过`gevent`实现并发,提高性能。本文介绍了`grequests`的安装、基本与高级功能,如GET/POST请求、并发控制等,并探讨其在实际项目中的应用。
31 3
|
27天前
|
前端开发 UED 开发者
CSS Sprites和图标字体在网页图标加载优化中的应用。CSS Sprites通过合并多图标减少HTTP请求,提升加载速度
本文探讨了CSS Sprites和图标字体在网页图标加载优化中的应用。CSS Sprites通过合并多图标减少HTTP请求,提升加载速度;图标字体则以字体形式呈现图标,便于调整样式。文章分析了两者的优缺点及应用场景,并提供了应用技巧和注意事项,旨在帮助开发者提升页面性能,改善用户体验。
24 5
|
1月前
|
缓存 前端开发 API
|
2月前
|
数据采集 前端开发 算法
Python Requests 的高级使用技巧:应对复杂 HTTP 请求场景
本文介绍了如何使用 Python 的 `requests` 库应对复杂的 HTTP 请求场景,包括 Spider Trap(蜘蛛陷阱)、SESSION 访问限制和请求频率限制。通过代理、CSS 类链接数控制、多账号切换和限流算法等技术手段,提高爬虫的稳定性和效率,增强在反爬虫环境中的生存能力。文中提供了详细的代码示例,帮助读者掌握这些高级用法。
123 1
Python Requests 的高级使用技巧:应对复杂 HTTP 请求场景
|
1月前
|
JSON API 数据格式
Python中获取HTTP请求响应体的详解
本文介绍了如何使用Python的`requests`和`urllib`库发送HTTP请求并处理响应体。`requests`库简化了HTTP请求过程,适合快速开发;`urllib`库则更为底层,适用于性能要求较高的场景。文章详细演示了发送GET请求、处理JSON响应等常见操作。
50 3