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支持的更多相关文章

  1. ABAP OO的八大理由

    原贴地址:http://scnblogs.techweb.com.cn/abaplv/archives/127.html 几年前SAP BASIS 4.6为ABAP扩展了OO功能,这是很多传统的ABA ...

  2. 为什么ABAP开发者需要使用面向对象技术?

    ABAP对面向对象的支持已有十多年的历史,然而在生产实践中,我们对这门技术的应用十分有限. 一方面,面向过程的惯性长期存在着:另一方面,对于大部分二次开发工作而言,似乎并没有足够的理由促使开发者使用面 ...

  3. ABAP开发人员未来应该学些什么

    2007年1月我大学毕业进入SAP Chengdu从事开发工作,到今天已经整整11年了. 这张图在ABAP开发圈子里曾广为流传: 为了避免这种窘境发生在ABAPer身上,我们应该做点什么呢? 2017 ...

  4. 一些通过SAP ABAP代码审查得出的ABAP编程最佳实践

    1. 这两个IF ELSE分支里检测的条件其实逻辑上来说都是同一类,应该合并到一个IF分支里进行检查: It is an expensive operation to open a file in a ...

  5. ABAP CDS-Part 1(ABAP CDS实体)

    文章翻译自Tushar Sharma的文章,转载请注明原作者和译者! 目录 预备条件 一.概述 二.ABAP CDS实体(CDS Entity) a.定义ABAP CDS Views b.ABAP C ...

  6. PA教材提纲 TAW12-1

    Unit1 Introduction to Object-Oriented Programming(面向对象编程介绍) 1.1 Explaining the Object-Oriented Progr ...

  7. 如何让Sublime Text编辑器支持新的ABAP关键字

    ABAP 7.40推出了许多新的关键字 - keyword,您的Sublime Text可能无法针对这些新关键字实现期望的语法高亮显示(syntax highlight)或者自动完成(auto com ...

  8. 查询SAP系统支持的ABAP版本

    7.52可以使用select 内表,但是怎么看版本呢? 如果有在开发中用到ABAP 7.4&7.5个版本的新语法时,需要考虑到系统支持的ABAP版本,那么要怎么查看呢? 其实这个和SAP的内核 ...

  9. ABAP开发环境终于支持以驼峰命名法自动格式化ABAP变量名了

    Jerry进入SAP成都研究院前,一直是用C/C++开发,所以刚接触ABAP,对于她在某些语法环境下大小写敏感,某些环境下不敏感的特性很不适应.那时候Jerry深深地怀念之前在C/C++编程时遵循的驼 ...

  10. 如何基于Restful ABAP Programming模型开发并部署一个支持增删改查的Fiori应用

    Jerry之前的文章30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用 发布之后,有朋友问我,"没错, 我是在你的文章里看到了Fiori应用的 ...

随机推荐

  1. 在服务端处理同步发送小消息的性能上Kafka>RocketMQ>RabbitMQ

    在发送小消息的场景中,三个消息中间件的表现区分明显: Kafka的吞吐量高达17.3w/s,远超其他两个产品.这主要取决于它的队列模式保证了写磁盘的过程是线性IO.此时broker磁盘IO已达瓶颈. ...

  2. loadrunner 函数解释

    一.lr_save_string 使用介绍1.该函数主要是将程序中的常量或变量保存为lr中的参数.格式: //将常量保存为参数lr_save_string("777"," ...

  3. 二、Jmeter录制脚本过程及Could not create script recorder报错、您的连接不是私密连接报错

    两个报错:Could not create script recorder报错和您的连接不是私密连接报错 1.录制过程 * 打开jmeter * 点击Templated,选择Recoding模版 * ...

  4. Oracle VM VirtualBox 虚拟机 常用快捷键

    右Ctrl+C :放大或缩小 右Ctrl+F :全屏 右Ctrl+Delete :登录 知道上面的其他就都知道了

  5. DCNN相关算法资料

    https://blog.csdn.net/hjimce/article/details/49955149 讲的很详细

  6. linux vnc 安装

    http://blog.csdn.net/mchdba/article/details/49306383

  7. 织梦ask标签的调用

    EDE 问答首页调用标签 标签名称: ask 功能说明:问答调用标签 适用范围:全局使用 基本语法: {dede:ask row='6' qtype='new' tid='0' titlelen='2 ...

  8. 对比两个表中,字段名不一样的SQL

    需要包括有几种情况一.A表中有的字段B表无二.B表有的A表无三.两个表字段名不一致的 --------------------------------------------------------- ...

  9. 【C#】教你纯手工用C#实现SSH协议作为GIT服务端

    SSH(Secure Shell)是一种工作在应用层和传输层上的安全协议,能在非安全通道上建立安全通道.提供身份认证.密钥更新.数据校验.通道复用等功能,同时具有良好的可扩展性.本文从SSH的架构开始 ...

  10. bzoj1293 生日礼物

    Description 小西有一条很长的彩带,彩带上挂着各式各样的彩珠.已知彩珠有N个,分为K种.简单的说,可以将彩带考虑为x轴,每一个彩珠有一个对应的坐标(即位置).某些坐标上可以没有彩珠,但多个彩 ...