点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我正在使用SAP Marketing Cloud的BAdI实施中的公共API(REST)。 在发送API请求之前,我需要对URL参数进行编码以获得正确的响应。 在BAdI实施中,我只能将ABAP用于具有特定限制的关键用户,并且不能为此目的使用标准类cl_http_utility。 还有另一种方法可以实现它吗?
编码如下:
"创建HTTP客户端以访问出站服务 DATA(lo_client)= cl_ble_http_client => create( communication_scenario ='YY1_API_GPS_COORD_MAPQUEST' outbound_service ='YY1_MAPQUESTAPI_REST' )。 "创建服务请求 数据(lo_request)= cl_ble_http_request =>创建( "用于服务调用的方法 )-> set_method( if_ble_http_request => co_method-get )。 ... " URL lo_request看起来像=> https://open.mapquestapi.com/geocoding/v1/address?key=XXXXX&location=Vyskočilova15,Praha,CZ&thumbMaps = false ... "发送请求并接收响应。 DATA(lo_response)= lo_client->发送(lo_request)。 取得回应的内容。 DATA(ls_body)= lo_response-> get_body()。
如果我通过浏览器或邮递员应用发送相同的GET请求,我将获得正确的响应:
如果我在BAdI实现中检查API的响应,则会得到错误的响应,因为缺少街道名称中的'č'字符。 URL编码可以解决此问题,但是我不知道如何使用cl_http_utility类来实现它。 有想法吗?
谢谢。
贾罗。
(55.1 kB)
嗨,
我使用escape()函数解决了这个问题。 对我来说很好。
致谢
Jaro
感谢Jaro。
Hello Jaro,
我建议针对此问题在组件BC-SRV-APS-EXT-BL上打开故障单。
最好的问候,
乔纳森
一周热门 更多>