当前位置: 首页 > news >正文

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

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

二、具体实例。
先使用Postman跑一下,ok没有问题,可以通畅。关键信息按照你的接口来,我的接口信息上马了。
在这里插入图片描述
然后写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 或者为 postlo_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_fieldEXPORTINGname  = '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 TimeEXCEPTIONShttp_communication_failure = 1                  " Communication Errorhttp_invalid_state         = 2                  " Invalid statehttp_processing_failed     = 3                  " Error When Processing Methodhttp_invalid_timeout       = 4                  " Invalid Time EntryOTHERS                     = 5).IF sy-subrc <> 0.result = '接口接受响应失败'.ENDIF.**********************************************************************
**  接收返回参数lo_client->receive(EXCEPTIONShttp_communication_failure = 1                " Communication Errorhttp_invalid_state         = 2                " Invalid statehttp_processing_failed     = 3                " Error When Processing MethodOTHERS                     = 4).IF sy-subrc <> 0.result = '接口接受响应失败'.ENDIF.result = lo_client->response->get_cdata( ).lo_client->close( )."  WRITE: url.WRITE: / result.

DEBUG看下过程,发现&符号是已经转义了
在这里插入图片描述
然后调取成功。

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

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

分享使我快乐,我是寒武青锋~!
在这里插入图片描述

相关文章:

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

一、了解下x-www-form-urlencoded形式对于SAP来说有啥区别 简单来说&#xff0c; 1.raw格式就是标准的json格式&#xff1a;{“Name”:“John Smith”&#xff0c;“Age”: 23} 2.x-www格式是要转化一下的&#xff1a;NameJohnSmith&Age23 字段与字段相互连接要用 & 符…...

thingsboard3.6的mailConfigTemplateController错误

1、bug内容 使用3.6版本的tb代码进行打包生成boot的jar包,在启动的时候会报错mailConfigTemplateController bean初始化找不到文件路径。 Error creating bean with name mailConfigTemplateController defined in URL [jar:file:/D:/yuxinwei/AE/thingsboard/thingsboard-3…...

Go语言中获取IP

简介 在net包中提供了获取所有网卡的ip&#xff0c;一般不会用127.0.0.1,::1这样的本地回环地址&#xff0c;可以过滤掉&#xff0c;如果想要获取当前真正在使用的地址&#xff0c;得通过net.Dail去连一下才知道 获取ip地址 func main() {fmt.Println(getIpv4())fmt.Println…...

【Computer Vision Foundation】全球计算机视觉基金会论文网

计算机视觉基金会&#xff08;Computer Vision Foundation&#xff0c;简称CVF&#xff09;是一个致力于推动计算机视觉领域研究和发展的组织。以下是关于计算机视觉基金会的一些基本信息&#xff1a; 成立目的&#xff1a; CVF成立的目的是促进计算机视觉领域的学术研究、技术…...

计网(复习自用)

计算机网络 1.概述 1.1概念 含义 计算机网络&#xff1a;是一个将分散的。具有独立功能的计算机系统&#xff0c;通过通信设备和线路连接起来&#xff0c;由功能完善的软件实现资源共享和信息传递的系统。 简单点说&#xff0c;计算机网络是互联的&#xff0c;自治的计算机集…...

安徽省广德市选择云轴科技ZStack Cloud云平台建设县级智慧城市

信创是数字中国建设的重要组成部分&#xff0c;也是数字经济发展的关键推动力量。作为云基础软件企业&#xff0c;云轴科技ZStack产品矩阵全面覆盖数据中心云基础设施&#xff0c;ZStack信创云首批通过可信云《一云多芯IaaS平台能力要求》先进级&#xff0c;是其中唯一兼容四种…...

【计算思维】蓝桥杯STEMA 科技素养考试真题及解析 6

1、明明买了一个扫地机器人&#xff0c;可以通过以下指令控制机器人运动: F:向前走 10 个单位长度 L:原地左转 90 度 R:原地右转 90 度 机器人初始方向向右&#xff0c;需要按顺序执行以下那条指令&#xff0c;才能打扫完下图中的道路 A、F-L-F-R-F-F-R-F-L-F B、F-R-F-L-F-F…...

nuxt3项目修改端口号

nuxt的默认端口号是3000 一、修改开发环境端口号 方式一&#xff1a;使用环境变量配置,设置&#xff08;PORT 或 NUXT_PORT&#xff09; # .env PORT3001 #http://localhost:3001/ NITRO_PORT3001 #http://localhost:3001/ 方式二&#xff1a;nuxt.config.ts里配置…...

c语言中使用openssl对rsa私钥解密

单次加密数据的最大长度&#xff08;block_len&#xff09;&#xff0c;由RSA秘钥模长RSA_size()和填充模式有关 填充模式&#xff1a;RSA_PKCS1_PADDING&#xff0c; block_lenRSA_size() - 11填充模式&#xff1a;RSA_PKCS1_OAEP_PADDING&#xff0c;block_lenRSA_size() - 4…...

mysql中数据是如何被用B+树查询到的

innoDB是按照页为单位读写的 那页中有很多行数据&#xff0c;是怎么执行查询的呢&#xff0c;首先我们肯定&#xff0c;是以单向列表形式存储的&#xff0c;提高了增删的效率&#xff0c;但是查询效率低。所以实际上对页中的行数据进行了优化&#xff0c;能以二分的方式进行查…...

Redisson 分布式锁的最佳实践

Redisson 分布式锁的最佳实践 第一、添加依赖第二、添加redisson配置类第三、添加测试类测试结果扩展知识redisson锁中lock方法和tryLock方法有什么区别锁续约 注意事项 引言 在现代分布式系统中&#xff0c;处理并发问题是至关重要的。分布式锁是解决这类问题的关键工具之一。…...

ArkTS声明式开发范式

装饰器 用来装饰类、结构体、方法以及变量&#xff0c;赋予其特殊的含义&#xff0c;如上述示例中 Entry 、 Component 、 State 都是装饰器。 Component 表示这是个自定义组件&#xff1b; Entry 则表示这是个入口组件&#xff1b; State 表示组件中的状态变量&#xff0c;…...

史诗级云故障敲响警钟,应用保障不能没有“连续键”!

近日&#xff0c;知名云服务商出现一次史诗级的云故障&#xff1a;全球所有区域/所有服务同时异常&#xff0c;故障持续长达3小时之多&#xff0c;云上众多应用受到极大影响。 如今&#xff0c;在一个充满不确定性和复杂性的数字化时代&#xff0c;哪怕是顶级云服务商亦不能避…...

SSH连接远程服务器报错:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED 解决方法

一.错误描述 报错信息里提示了路径信息/root/.ssh/known_hosts:20 二.解决方案 方法一 输入以下指令&#xff1a; ssh-keygen -R XXX&#xff08;需要连接远程服务器的ip&#xff09; 按照我的例子ip:10.165.7.136&#xff0c;会返回以下信息: 重新尝试连接&#xff1a; 输…...

数据库——查询连续的月份

一、GP或PGSQL with recursive t(n) as (select date(2023-01-01) union all select n1 from t where n < now()) select to_char(n, yyyy-mm) as ny from t group by ny order by ny 二、Hive select add_months(FROM_UNIXTIME(unix_timestamp(SUBSTR(start_date, 1, 7…...

git代码提交命令(如何提交代码)

# 提交暂存区到仓库区 $ git commit -m [message]# 提交暂存区的指定文件到仓库区 $ git commit [file1] [file2] ... -m [message]# 提交工作区自上次commit之后的变化&#xff0c;直接到仓库区 $ git commit -a# 提交时显示所有diff信息 $ git commit -v# 使用一次新的commit…...

jmeter中调用python代码

1、安装pyinstaller pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller 2、将py脚本打包 pyinstaller -F venv/get_image/OCR_jmeter_api.py 3、jmeter中添加OS Process Sampler并调用dist下的程序 4、执行jmeter...

当当网获得dangdang商品详情商品列表API 测试请求入口

item_get-获得dangdang商品详情 获取商品详情 item_search-按关键字搜索dangdang商品 获取商品列表 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请…...

git如何查看配置,修改配置,设置配置

# 显示当前的Git配置 $ git config --list# 编辑Git配置文件 $ git config -e [--global]# 设置提交代码时的用户信息 $ git config [--global] user.name "[name]" $ git config [--global] user.email "[email address]"...

交通流合成数据生成原理及实现代码

移动数据是设备的地理位置&#xff0c;通过正常活动被动产生。 它具有从交通规划到迁移预测的重要应用。 由于移动数据稀有且难以收集&#xff0c;研究人员已开始探索综合生成移动数据的解决方案。 在本文中&#xff0c;我将讨论一种用于合成移动数据的简单解决方案。 该合成数…...

深入解析Google API变迁:从Plus到People

随着技术的不断进步,API也在不断更新迭代。Google作为全球领先的科技公司,其API的变迁更是频繁。本文将通过一个具体的案例,深入探讨Google API从Plus到People的变迁过程,并分析其中涉及的关键变化。 背景介绍 在过去,Google提供了一个名为google/apiclient的PHP库,用于…...

高效解决DLSS版本管理的专业配置方案与实战指南

高效解决DLSS版本管理的专业配置方案与实战指南 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 在PC游戏性能优化领域&#xff0c;DLSS&#xff08;深度学习超级采样&#xff09;技术已成为提升帧率的关键工具。然而&a…...

SV约束控制技巧:手把手教你用constraint_mode和rand_mode动态管理验证场景

SV约束控制实战&#xff1a;动态管理验证场景的高级技巧 在芯片验证领域&#xff0c;随机约束测试已成为覆盖复杂设计场景的核心手段。但许多验证工程师往往只掌握了基础约束语法&#xff0c;却忽略了SystemVerilog提供的动态控制能力——这正是构建灵活、可配置验证环境的关键…...

多智能体协作系统CubSwarm深度解析:Harness工程与品牌记忆设计

上周利欧数字发布了CubSwarm多智能体系统&#xff0c;72小时就接入了V4-Pro。这速度&#xff0c;让我这个天天盯着技术文档的人都有点惊讶。 今天咱们就来扒一扒这个CubSwarm&#xff0c;看看它的架构设计有什么门道。 一、先搞清楚它在解决什么问题 在说技术之前&#xff0c…...

告别单调列表!Bootstrap-Vue列表组件BListGroup的10个高级玩法

告别单调列表&#xff01;Bootstrap-Vue列表组件BListGroup的10个高级玩法 【免费下载链接】bootstrap-vue MOVED to https://github.com/bootstrap-vue-next/bootstrap-vue-next 项目地址: https://gitcode.com/gh_mirrors/bo/bootstrap-vue Bootstrap-Vue的BListGroup…...

AI教材生成新趋势:低查重率,快速编写50万字专业教材不是梦!

整理教材中的知识点确实是一项“精细活”&#xff0c;关键在于如何实现平衡与连接&#xff01;往往有两大难题需要解决&#xff1a;一方面是担心关键知识点的遗漏&#xff0c;另一方面则是难以掌握合适的难度层次——小学的教材常常写得深奥&#xff0c;学生难以理解&#xff1…...

UE5.1 IK重定向器避坑指南:解决角色‘上半身动、脚不动’等5个常见问题

UE5.1 IK重定向器深度排障手册&#xff1a;从骨骼链配置到动画蓝图的全链路诊断 当你第一次看到角色在重定向后像被施了定身咒——上半身舞动自如&#xff0c;双脚却像焊死在地面&#xff0c;这种违和感足以让任何开发者抓狂。这不是魔法失效&#xff0c;而是IK重定向系统中某个…...

AI伦理官2026认证路线:软件测试从业者的专业转型指南

在人工智能技术飞速发展的2026年&#xff0c;AI伦理官已成为全球科技领域的关键角色&#xff0c;负责确保算法决策的公平性、透明性和合规性。随着各国监管框架&#xff08;如欧盟AI法案和中国《人工智能科技伦理审查与服务办法》&#xff09;的强制执行&#xff0c;企业对AI伦…...

Cronsun快速部署教程:5分钟搭建高可用分布式任务调度平台

Cronsun快速部署教程&#xff1a;5分钟搭建高可用分布式任务调度平台 【免费下载链接】cronsun A Distributed, Fault-Tolerant Cron-Style Job System. 项目地址: https://gitcode.com/gh_mirrors/cr/cronsun Cronsun是一款强大的分布式任务调度系统&#xff0c;能够帮…...

从信号处理到数据可视化:Python FFT实战中,fftsize参数设置的3个关键场景与避坑指南

从信号处理到数据可视化&#xff1a;Python FFT实战中fftsize参数设置的3个关键场景与避坑指南 当你面对一段信号数据&#xff0c;手指悬在键盘上犹豫不决——fftsize到底该设成信号长度、2的幂&#xff0c;还是某个特定值&#xff1f;这个看似简单的参数选择&#xff0c;实际上…...