SAP ABAP 调用 HTTPS(参考POSTMAN参数详解)

原文链接 : https://blog.csdn.net/lmf496891416/article/details/120569028
一、对https接口的简单认识
我使用的百度天气接口
在这里插入图片描述
1.参数-Params
这些参数为必填,看接口的开发文档的要求来就好了。
用户密匙在上面申请创建
在这里插入图片描述
2.权限-Authorization
一些API是要用户和密码

3.抬头-Headers
json 格式,和utf-8这类的信息。在ABAP对应的设置是:

  CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
    EXPORTING
      NAME  = 'Content-Type'
      VALUE = 'application/json'.

在这里插入图片描述

4.主体-Body
为json格式的数据,比如
在这里插入图片描述
二、实例操作

1.获取天气接口的密匙
https://lbsyun.baidu.com/apiconsole/center#/home
按照网站的提示操作就可以了。

2.SE38创建程序

DATA: len         TYPE        i, "发送报文长度"
      len_string  TYPE        string,
      url         TYPE        string, "接口地址
      http_client TYPE REF TO if_http_client, "http客户端
      post_string TYPE        string,
      result      TYPE        string.
DATA: it_header  TYPE tihttpnvp,
      gv_json_in TYPE string VALUE '' .

START-OF-SELECTION.

  url = 'https://api.map.baidu.com/weather/v1/district_id=222405&data_type=all&ak=******自己去申请密匙'.
 "url = 'http://192.168.******' ."

    cl_http_client=>create_by_url(
        EXPORTING url = url    "服务提供方服务地址
        IMPORTING client  =  DATA(lo_client)
      ).

  "调取方式:get 或者为 post"
  " lo_client->request->set_method( if_http_request=>co_request_method_post ).
   lo_client->request->set_method( if_http_request=>co_request_method_get ).

**  设置post接口body参数"
      lo_client->request->set_cdata( data = gv_json_in ).

**  发送数据
    lo_client->send(
*      EXPORTING
*        timeout                    = co_timeout_default " Timeout of Answer Waiting Time
      EXCEPTIONS
        http_communication_failure = 1                  " Communication Error
        http_invalid_state         = 2                  " Invalid state
        http_processing_failed     = 3                  " Error When Processing Method
        http_invalid_timeout       = 4                  " Invalid Time Entry
        OTHERS                     = 5
    ).
    IF sy-subrc <> 0.
       result = '接口接受响应失败'.
    ENDIF.

**********************************************************************
**  接收返回参数
    lo_client->receive(
      EXCEPTIONS
        http_communication_failure = 1                " Communication Error
        http_invalid_state         = 2                " Invalid state
        http_processing_failed     = 3                " Error When Processing Method
        OTHERS                     = 4
    ).
    IF sy-subrc <> 0.
      result = '接口接受响应失败'.
    ENDIF.

    result = lo_client->response->get_cdata( ).

  lo_client->close( ).
 WRITE: url.
  WRITE: / result.

3.上传证书
在网站上下载证书之后,进入STRUST 事务代码,导入证书
在这里插入图片描述
3.运行程序
在这里插入图片描述
4.https需要导入证书,不然会报500 SSL Peer错误
在这里插入图片描述
如果报错404那说明是数据格式或者程序代码问题。

5.http就不用导入证书就可以链接
url换成内网的IP接口地址
运行结果:接口已经调取成功,只是我传输的内容不对。
在这里插入图片描述
参考链接

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值