前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >matinal:SAP ABAP 关于SAP系统中如何集成HTTPS的若干功能总结篇【第二篇】

matinal:SAP ABAP 关于SAP系统中如何集成HTTPS的若干功能总结篇【第二篇】

作者头像
matinal
发布2024-04-03 09:18:39
1380
发布2024-04-03 09:18:39
举报
文章被收录于专栏:SAP TechnicalSAP Technical

🚀欢迎来到本文🚀 🍉个人简介:matinal,目前职业是IT行业,一个正在慢慢前行的普通人。 🏀系列专栏:涵盖SAP各模块,Python,Excel,人工智能等 💡 其他专栏:一些平时学习的技术,感兴趣的小伙伴可以看看。 🍔公众号:matinal 🎁希望各位→点赞👍 + 收藏⭐️ + 留言📝 ​ ⛱️万物从心起,心动则万物动🏄‍♂️

前言:SAP ABAP 关于SAP系统中如何集成HTTPS的若干功能总结篇,这是第二篇。本篇主要介绍SAP中集成http服务,所以,如果你了解并熟知,请略过本篇。 🦙(工作遇到傻逼,千万要远离。道路千万条,远离傻逼第一条)

1990年互联网诞生之初,就已经开始用超文本传输协议 HTTP 传输数据,这也是为什么现在网页地址都是以 http 开头的原因。但是HTTP协议传输数据是明文传输,任意的人抓包就能看到传输的数据,这显然不安全。1994年,Netscape 公司用加密协议增加了 HTTP,开始在 HTTP 的基础上加入 SSL 即安全套接层(Secure Socket Layer)。称为 "HTTP over SSL" 或者 "HTTP Secure",也就是我们现在熟知的 HTTPS。

HTTPS 其实是一个“非常简单”的协议,RFC 文档很小,只有短短的 7 页,里面规定了新的协议名“https”,默认端口号 443,至于其他的什么请求 - 应答模式、报文结构、请求方法、URI、头字段、连接管理等等都完全沿用 HTTP,没有任何新的东西。

也就是说,除了协议名“http”和端口号 80 这两点不同,HTTPS 协议在语法、语义上和 HTTP 完全一样,优缺点也“照单全收”(当然要除去“明文”和“不安全”)。

HTTP 协议一般指 HTTP(超文本传输协议)。

超文本传输协议(英语:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议,是因特网上应用最为广泛的一种网络传输协议,所有的 WWW 文件都必须遵守这个标准。

HTTP 是为 Web 浏览器与 Web 服务器之间的通信而设计的,但也可以用于其他目的。

HTTP 是一个基于 TCP/IP 通信协议来传递数据的(HTML 文件、图片文件、查询结果等)。

下面进入正文


一、对https接口的简单认识

我使用的百度天气接口

1.参数-Params 这些参数为必填,看接口的开发文档的要求来就好了。 用户密匙在上面申请创建

2.权限-Authorization 一些API是要用户和密码

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

代码语言:javascript
复制
  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.天气接口用这个比较方便 https://tianqiapi.com/ 按照网站的提示操作就可以了。

2.SE38创建程序

代码语言:javascript
复制
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接口地址 运行结果:接口已经调取成功,只是我传输的内容不对。

怎么样,在了解此篇文章有何感想?

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、对https接口的简单认识
  • 二、实例操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档