SAP 调取http的x-www-form-urlencoded形式的接口

这篇具有很好参考价值的文章主要介绍了SAP 调取http的x-www-form-urlencoded形式的接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、了解下x-www-form-urlencoded形式对于SAP来说有啥区别
SAP 调取http的x-www-form-urlencoded形式的接口,ABAP,abap,SAP
简单来说,
1.raw格式就是标准的json格式:{“Name”:“John Smith”,“Age”: 23}
2.x-www格式是要转化一下的:Name=John+Smith&Age=23
字段与字段相互连接要用 & 符号,空格用 + 连接。所以说当你的关键参数里面带有这些特殊符号时,就要用方法转化一下。

二、具体实例。
先使用Postman跑一下,ok没有问题,可以通畅。关键信息按照你的接口来,我的接口信息上马了。
SAP 调取http的x-www-form-urlencoded形式的接口,ABAP,abap,SAP
然后写ABAP代码:

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=cvqVbWx3ruVm63LqMbuW43K3oqNOodBT'.

  url = 'http://这是个具体的网址,你需要粘贴上你的网址token'.

  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 ).

  "设置抬头字段
  CALL METHOD lo_client->request->set_header_field
    EXPORTING
      name  = 'Content-Type'
      value = 'application/x-www-form-urlencoded'.  "为这种形式的,需要设置抬头格式
      
"返回格式。为json的
  lo_client->response->if_http_entity~set_content_type( content_type = 'application/json' ).

*lo_client->response->get_header_field( name = 'x-csrf-token' ).
*lo_client->response->get_cookies( CHANGING cookies = lt_cookies ).

  DATA:lv_username TYPE string.
  DATA:lv_password TYPE string.

"为这种x-www-form-urlencoded形式的,需要把变量全部转译一下,比如&符号的
  lv_username = cl_http_utility=>escape_url( 'cha填写关键信息' ).
  lv_password = cl_http_utility=>escape_url( 'O0&J人工打码' ).
  gv_json_in =   'grant_type=password' &&   "固定值
                 '&username=' && lv_username &&
                 '&password=' && lv_password &&
                 '&client_id=crm' .  "固定值

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


**  发送数据
  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.

DEBUG看下过程,发现&符号是已经转义了
SAP 调取http的x-www-form-urlencoded形式的接口,ABAP,abap,SAP
然后调取成功。

参考资料:
1.https://blog.csdn.net/BinGeneral/article/details/123607105 -斌将军SAP HTTP调用其他系统接口

感谢
同事小何
学习群-派蒙
学习群-fufu可爱捏

分享使我快乐,我是寒武青锋~!
SAP 调取http的x-www-form-urlencoded形式的接口,ABAP,abap,SAP文章来源地址https://www.toymoban.com/news/detail-756118.html

到了这里,关于SAP 调取http的x-www-form-urlencoded形式的接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue给接口传x-www-form-urlencoded类型参数

    今天在前端调用后端接口的时候出现了很多问题,出现问题的原因是跟后端没有及时的去沟通,自己一个人参考swagger接口文档闷头苦干。结果接口一直报400XSS参数攻击异常,没办法跟后端对接后才成功调用接口。 如何给接口传x-www-form-urlencoded类型的参数呢??? 参考一下代

    2024年02月13日
    浏览(29)
  • form-data和x-www-form-urlencoded的区别和延伸

    form-data和x-www-form-urlencoded,它们完整的表示是multipart/form-data和application/x-www-form-urlencoded。 为了方便,我们下面就用form-data和x-www-form-urlencoded表示。 两者的区别,可谓是老生常谈,随便百度一下,也是有大堆资料。可是我还想用一篇文章来总结一下,主要有两点原因: form-

    2024年02月12日
    浏览(33)
  • java restful application/x-www-form-urlencoded 传递参数

            在发送短信的时候,要使用x-www-form-urlencoded的编码格式进行传递参数。  具体要求: 参数名称 说明 备注 userId 用户名 timespan 时间戳 格式为yyyyMMddHHmmss password 密码 此处用原始密码+时间戳 做MD5加密,32位大写格式   phone 手机号 多个用英文逗号隔开 msgType 编码类型 选

    2024年02月14日
    浏览(33)
  • java实现postman为x-www-form-urlencoded的调用

    1.客户端实现 导入http-client jar。 2.服务端实现

    2024年02月11日
    浏览(29)
  • 实例教程:使用SpringBoot接收form-data和x-www-form-urlencoded数据

    【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我

    2024年02月19日
    浏览(28)
  • postman中 form-data、x-www-form-urlencoded、raw、binary的区别

    multipart/form-data:可以上传文件,以及表单键值对,最后会转化为一条信息; x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的。 raw:可以上传任意格式的文本,可以上传text、json、xml、html等 1、form-data: 就是http请求中的 multipart/form-data ,它会将表单的数据处理为

    2024年03月24日
    浏览(31)
  • Qt网络编程post请求,数据格式为json或x-www-form-urlencoded

    目录 Qt网络编程post请求,数据格式为json或x-www-form-urlencoded 一、.H文件 1、.h头文件 2、.h主代码 二、.CPP文件 1、主代码  三、响应信息 返回结果(Josn数据格式输出) 四、Post数据格式参数及数据类型定义 1、Post:application/x-www-form-urlencoded数据类型格式 2、Post:application/json数据

    2024年02月07日
    浏览(34)
  • asp.net core webapi接收application/x-www-form-urlencoded和form-data参数

    框架:asp.net core webapi asp.net core webapi接收参数,请求变量设置 Post ([FromForm]TokenRequestInput user) 可以接收发送类型为multipart/form-data、application/x-www-form-urlencoded的数据 请求地址 http://localhost:5170/api/User/GetToken?code=22222 IFormFile file这个参数是接收文件,mimeType=multipart/form-data 参数use

    2024年04月15日
    浏览(29)
  • 前端数据格式解析 json,form(application/json、application/x-www-form-urlencoded、multipart/form-data)

    这几天编写web前端时,在处理前端数据发回后端时遇到了一些数据格式的问题,查了不少资料后准备整理总结一下。 常见的有两种格式 json与form json,全称是javascript object notation,即JavaScript对象标记法 json,一种轻量级(Light-Meight)、基于文本的(Text-Based)、可读的(Human-

    2024年02月03日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包