SAP的代码向www发送http请求的过程-阿里云开发者社区

开发者社区> pandamonica> 正文

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对象的实例。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Android手机访问web服务器(post请求)
一:客户端—服务器连接操作类(HttpUtil) package com.example.userdatatoweb; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import
1400 0
如何判断自己使用的是appid请求还是pid(partner)请求
appid请求(如下图):   网关是openapi([url]https://openapi.alipaydev.com/gateway.do[/url]) ,appid (年份开头)  pid请求:(如下图):   网关是:mapi ([url]https://mapi.
445 0
竞彩足球混合过关赔率API调用示例代码
<?php// +----------------------------------------------------------------------// | 竞彩足球混合过关赔率API调用示例代码 - 麦趣数据// | 在线接口文档:http://www.
3395 0
SAP的代码向www发送http请求的过程
SAP的代码向www发送http请求,这句话像是在搞笑一样。但是仔细想想我们随便打开个浏览器访问个网址,就是在向www发送http请求,这有什么搞笑的呢?SAP既是应用也是开发环境,对外发送个http请求是很正常的。
1971 0
+关注
159
文章
3
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载