zoukankan      html  css  js  c++  java
  • 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设置查询语句。

  • 相关阅读:
    Oracle 11g SQL Fundamentals Training Introduction02
    Chapter 05Reporting Aggregated data Using the Group Functions 01
    Chapter 01Restriicting Data Using The SQL SELECT Statemnt01
    Oracle 11g SQL Fundamentals Training Introduction01
    Chapter 04Using Conversion Functions and Conditional ExpressionsConditional Expressions
    Unix时代的开创者Ken Thompson (zz.is2120.bg57iv3)
    我心目中计算机软件科学最小必读书目 (zz.is2120)
    北京将评估分时分区单双号限行 推进错时上下班 (zz)
    佳能G系列领军相机G1X
    选购单反相机的新建议——心民谈宾得K5(转)
  • 原文地址:https://www.cnblogs.com/ricoo/p/10131384.html
Copyright © 2011-2022 走看看