ABAP-HTTP支持
SAP Web Application Server -> Internet Communication Framework.
http://help.sap.com/saphelp_nw70/helpdata/EN/36/020d3a0154b909e10000000a114084/frameset.htm
CLIENT端发出请求到HTTP Server端流程:
1. 创建CL_HTTP_CLIENT 实例
a> CL_HTTP_CLIENT=>CREATE
必需参数:
HOST (host name),
SERVICE (port),
PROXY_HOST (host name of the proxy host),
PROXY_SERVICE (port of the proxy host)
SCHEME (specifies whether HTTP or HTTPS should be used; has the default value “SCHEMETYPE_HTTP”).
you can use the parameter SSL_ID to specify appropriate SSL certificates.
b> CL_HTTP_CLIENT=>CREATE_BY_DESTINATION 必须在事务SM59中设置HTTP
destination, 具体参考Connection Establishment Using Destination (SM59).
http://help.sap.com/saphelp_nw70/helpdata/EN/da/11df3a9b10355ae10000000a11405a/content.htm
另外也可能会需要设置proxy for client,事务:SICF.
c>CL_HTTP_CLIENT=>CREATE_BY_URL.
2.生成的客户端请求的属性REQUEST被请求数据所填充.
3.调用方法SEND发出request,
4.任务处理器与ICM(Internet Communication Manager)发出请求到目标HTTP server.
5.如果目标HTTP Server需要授权的话,可能会弹出 SAP logon or the HTTP standard,(5,6,7,8.) 它是在方法RECIVE中执行的,也可禁止登录对话框,设置IF_HTTP_CLIENT~PROPERTYTYPE_LOGON_POPUP的值为CO_DISABLED. 另外还可以设置是否允许REDIRECT,及已在系统设置的PROXY.可以调用方法 SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background:#FFFFFF; } authenticate 来设置用户名密码。
6.HTTP Server生成RESPONSE并发送回来.当我们执行方法RECEIVE时,返回数据填充在CLIENT实例的RESPONSE属性中.
7.返回数据被处理或显示.也可以把返回数据传送到HTML contorl中.
8.数据被显示后,调用方法CLOSE连接被关闭.为了避免资源浪费,注意应当关闭连接. 注意一旦被关闭,不能再访问Request和Response对象.
重要的相关接口
1. IF_HTTP_CLIENT
CL_HTTP_CLIENT是其实现. 有两个属性IF_HTTP_REQUEST and IF_HTTP_RESPONSE 对应于the HTTP request and HTTP response 数据. 采用方法LISTEN可以并行处理多个请求.
2. IF_HTTP_RESPONSE 与IF_HTTP_REQUEST
两者都用在SERVER与CLIENT端,它们都是IF_HTTP_ENTITY的增强,用来访问数据,提供了一些功能用来访问HTTP header,与HTTP body,
a>IF_HTTP_ENTITY提供了一些方法对 Header Fields(GET_HEADER_FIELD() / GET_HEADER_FIELDS(), SET_HEADER_FIELD() and SET_HEADER_FIELDS() ),
IF_HTTP_HEADER_FIELDS中有经常用到的header fields, Form Fields, Cookies, HTTP Body Data, HTTP Multipart Data
b>在IF_HTTP_RESPONSE中提供了一些如
GET_STATUS 获取目前设置的HTTP 状态码.
REDIRECT 转发到另外的URL,ICM端的缓存
COPY 复制RESPONSE对象
GET_RAW_MESSAGE 获取完整的 HTTP message SERVER_CACHE_BROWSER_DEPENDENT 在服务端缓存设置浏览器特定的HTML的返回。
c>在IF_HTTP_REQUEST中提供了一些方法设置授权方法的方法,
GET_AUTHORIZATION Provides information from the authorization header field
SET_AUTHORIZATION Sets the authorization header field for the request
GET_FORM_DATA 将所有的数据放入到一个复杂的数据结构中.
COPY 复制请求对象
3. IF_HTTP_UTILITY
提供了一些DECODE_BASE64方法来解密, ENCODE_BASE64加密 ESCAPE_HTML ESCAPE_URL UNESCAPE_URL 对转义字符进行处理. STRING_TO_FIELDS FIELDS_TO_STRING 查询字符串与一系列字段间转换 SET_QUERY设置查询语句。
ABAP-HTTP支持的更多相关文章
- ABAP OO的八大理由
原贴地址:http://scnblogs.techweb.com.cn/abaplv/archives/127.html 几年前SAP BASIS 4.6为ABAP扩展了OO功能,这是很多传统的ABA ...
- 为什么ABAP开发者需要使用面向对象技术?
ABAP对面向对象的支持已有十多年的历史,然而在生产实践中,我们对这门技术的应用十分有限. 一方面,面向过程的惯性长期存在着:另一方面,对于大部分二次开发工作而言,似乎并没有足够的理由促使开发者使用面 ...
- ABAP开发人员未来应该学些什么
2007年1月我大学毕业进入SAP Chengdu从事开发工作,到今天已经整整11年了. 这张图在ABAP开发圈子里曾广为流传: 为了避免这种窘境发生在ABAPer身上,我们应该做点什么呢? 2017 ...
- 一些通过SAP ABAP代码审查得出的ABAP编程最佳实践
1. 这两个IF ELSE分支里检测的条件其实逻辑上来说都是同一类,应该合并到一个IF分支里进行检查: It is an expensive operation to open a file in a ...
- ABAP CDS-Part 1(ABAP CDS实体)
文章翻译自Tushar Sharma的文章,转载请注明原作者和译者! 目录 预备条件 一.概述 二.ABAP CDS实体(CDS Entity) a.定义ABAP CDS Views b.ABAP C ...
- PA教材提纲 TAW12-1
Unit1 Introduction to Object-Oriented Programming(面向对象编程介绍) 1.1 Explaining the Object-Oriented Progr ...
- 如何让Sublime Text编辑器支持新的ABAP关键字
ABAP 7.40推出了许多新的关键字 - keyword,您的Sublime Text可能无法针对这些新关键字实现期望的语法高亮显示(syntax highlight)或者自动完成(auto com ...
- 查询SAP系统支持的ABAP版本
7.52可以使用select 内表,但是怎么看版本呢? 如果有在开发中用到ABAP 7.4&7.5个版本的新语法时,需要考虑到系统支持的ABAP版本,那么要怎么查看呢? 其实这个和SAP的内核 ...
- ABAP开发环境终于支持以驼峰命名法自动格式化ABAP变量名了
Jerry进入SAP成都研究院前,一直是用C/C++开发,所以刚接触ABAP,对于她在某些语法环境下大小写敏感,某些环境下不敏感的特性很不适应.那时候Jerry深深地怀念之前在C/C++编程时遵循的驼 ...
- 如何基于Restful ABAP Programming模型开发并部署一个支持增删改查的Fiori应用
Jerry之前的文章30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用 发布之后,有朋友问我,"没错, 我是在你的文章里看到了Fiori应用的 ...
随机推荐
- Nginx 安装成Windows 服务方法
1. 下载nginx windows版本 http://www.nginx.org 2. 下载微软的2个工具: instsrv.exe.srvany.exe 去微软网站下载安装Windows Serv ...
- 【转】解决Win7字体模糊不清晰的最佳办法
原文网址:http://blog.sina.com.cn/s/blog_3d5f68cd0100ldtp.html 相信初次用win7的朋友,都会遇到字体不清晰的问题,有很多人因为这个问题而放弃使用w ...
- hadoop之 map个数控制
hadooop提供了一个设置map个数的参数mapred.map.tasks,我们可以通过这个参数来控制map的个数.但是通过这种方式设置map的个数,并不是每次都有效的.原因是mapred.map. ...
- java中<load-on-startup>含义
java中 load-on-startup 含义 java中的 load-on-startup 用于表示该servlet是否在servlet容器启动的时候加载. 示例: <load-on-sta ...
- pm2 知识点
pm2:node进程管理工具 pm2 命令: pm2 命令 作用 pm start xxx.js 启动 xxx.js pm stop xxx.js 停止 xxx.js pm2 list 显示所有进程状 ...
- Apache Shiro在web开发安全框架中的应用
前阶段就hadoop的分享了一些内容,希望对新手入门的朋友有点帮助吧!对于hadoop新手入门的,还是比较推荐大快搜索的DKHadoop发行版,三节点标准版还是值得拥有的(三节点的标准版是可以免费下载 ...
- Debug---Eclipse断点调试基础
1.进入debug模式(基础知识列表)1.设置断点 2.启动servers端的debug模式 3.运行程序,在后台遇到断点时,进入debug调试状态 ========================= ...
- 工欲善其事必先利其器系列之:更换Visual Studio代码风格.
前言:如果你厌倦了默认的VS的背景颜色,可以在studiostyl下载.vssettinggs文件,将其导入VS中,黑色的风格还是蛮不错的,如果用的12的话就没这个必要了我觉得. 从网站下载后会得到扩 ...
- 关于IOS给我的启发
用了将近一年半的iOS,从4到4S,iOS5到iOS6.这里谈谈自己对iOS的一些看法,以及这款移动操作系统给我的启发.我知道这个帖子发出来可能有点“危险”.我从不发水贴,这些积分都是大家给的,不是灌 ...
- win2003 server的域用户加入本地管理员组
很久没有搞windows的域管理,今天碰到一个问题,一直找不到解决方法,一直在网络找资料,直到刚刚才找到方法,方法如下: C:\>net localgroup administrators li ...