ABAP http client REST/HTTP接口连接案例 SAAS平台基于Oauth2认证的API示例

对于调用频次低的接口,Token可在程序每次调用前获取对于调用频次中等 高频调用期间不定的接口,可创建自定义表存Token + Token获取日期 + Token获取时间;调用时如果上次获取的Token在有效期直接调用,不在有效期就重新获取并存表对应调用频次高的接口,可以做个Job每1小时55分钟更新一次Token到自定义表或共享内存(假设Token有效时间2小时)
摘要由CSDN通过智能技术生成

SAAS平台基于Oauth2认证的http API连接案例,有问题阅读注释

=>前言

  • 对于调用频次低的接口,Token可在程序每次调用前获取
  • 对于调用频次中等 高频调用期间不定的接口,可创建自定义表存Token + Token获取日期 + Token获取时间;调用时如果上次获取的Token在有效期直接调用,不在有效期就重新获取并存表
  • 对应调用频次高的接口,可以做个Job每1小时55分钟更新一次Token到自定义表或共享内存(假设Token有效时间2小时)

Step1.示例代码

  1. 在APIPost SoapUI等软件中,参数对应的ABAP方法
    0
    TYPES: BEGIN OF TY_TOKEN,
             ACCESS_TOKEN TYPE CHAR50,
             TOKEN_TYPE   TYPE CHAR10,
             EXPIRES_IN   TYPE CHAR10,
             SCOPE        TYPE CHAR10,
           END OF  TY_TOKEN.
    
    DATA: GO_HTTP_CLIENT TYPE REF TO IF_HTTP_CLIENT.
    
    DATA: GT_TOKEN TYPE TABLE OF TY_TOKEN,
          GS_TOKEN TYPE TY_TOKEN.
    
    DATA: RESPONSE TYPE STRING,
    	  RESPONSE1 TYPE STRING,
          MESSAGE  TYPE STRING,
          TOKEN    TYPE CHAR50.
    
    CONSTANTS: GC_HOST TYPE STRING VALUE 'http://api.host.com',
               GC_AUTH TYPE STRING VALUE 'Basic YTU5OTk1MzgtOTNmNC01NzYyLWJmNjMtZ5hjODQzNjIwYWEwOjdiZGY0NGVjLTc4NGUCNGU0NC04N2MyLWZiNTQ4OTY4MjdhMQ=='.
    
    *"如果有汉字需要转码成ASCII
    *CALL METHOD CL_HTTP_UTILITY=>ESCAPE_URL
    *  EXPORTING
    *    UNESCAPED = STRING_IN
    *  RECEIVING
    *    ESCAPED   = STRING_OUT.
    
    *&-------------------创建客户端请求-------------------------------------*
    CALL METHOD CL_HTTP_CLIENT=>CREATE_BY_URL
      EXPORTING
        URL                = GC_HOST
      IMPORTING
        CLIENT             = GO_HTTP_CLIENT
      EXCEPTIONS
        ARGUMENT_NOT_FOUND = 1
        PLUGIN_NOT_ACTIVE  = 2
        INTERNAL_ERROR     = 3
        OTHERS             = 4.
    
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH
                 SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      EXIT.
    ENDIF.
    
    *GO_HTTP_CLIENT->PROPERTYTYPE_LOGON_POPUP = GO_HTTP_CLIENT->CO_DISABLED.       "关闭登录弹窗
    
    *&----------------------------Step1:Get Token.-------------------------*
    *http请求如果频次高,Get Token应该另外写程序,通过Background Job维持Token有效
    
    "设置http协议版本
    GO_HTTP_CLIENT->REQUEST->SET_VERSION( IF_HTTP_REQUEST=>CO_PROTOCOL_VERSION_1_1 ).
    "设置http请求方法
    GO_HTTP_CLIENT->REQUEST->SET_METHOD( IF_HTTP_REQUEST=>CO_REQUEST_METHOD_POST ).
    
    "设置URI
    CL_HTTP_UTILITY=>SET_REQUEST_URI( REQUEST = GO_HTTP_CLIENT->REQUEST URI = '/openapi/oauth/token' ).
    
    "设置http请求头
    GO_HTTP_CLIENT->REQUEST->SET_HEAD
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值