点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我们需要从使用JSON的ABAP连接到外部HTTPS REST服务。
我们正在通过SAPGui(而不是Eclipse)使用直接ABAP,而且我们还没有使用7.4,因此我不能使用新的标准SAP JSON类。
我下载并安装了ZJSON内容,但是我很难找到清晰的示例来描述应如何使用它。
到目前为止,我正在调用CL_HTTP_CLIENT类CREATE_BY_DESTINATION方法来使用基本身份验证打开与外部服务的连接。 根据我们需要调用的特定函数,他们为我们提供了具有各种方法子路径的基本URL。
我的麻烦点一直在尝试在需要传递参数的地方调用它们的API方法,但是在使用ABAP CL_HTTP_CLIENT类的HTTP/REST/JSON语法上遇到了麻烦。
我正在调用CL_HTTP_CLIENT-> REQUEST-> SET_HEADER_FIELD来设置标头值:
'〜server_protocol'='HTTP/1.1'
'Accept'='application/json'
'Content-Type'='application/json; charset = utf-8'
我正在调用CL_HTTP_CLIENT-> REQUEST-> SET_METHOD将请求方法设置为" POST"
我还要调用CL_HTTP_UTILITY => SET_REQUEST_URI来设置完整的方法路径(在基本URL之后),包括我们需要使用的特定方法。
我尝试将所需的方法参数设置为表单字段,但我认为他们需要将其设置为JSON格式。
作为测试,我对他们的期望进行了硬编码,并称为CL_HTTP_CLIENT-> REQUEST-> SET_CDATA,但是他们的服务器返回了非常长的HTML页面,而不是用JSON语法包装的预期返回参数。
我在正确的轨道上吗? 是CL_HTTP_CLIENT-> REQUEST-> SET_CDATA(或SET_DATA)方法将指定的内容放入HTTP REST"有效负载"中还是应该做其他事情?
非常感谢您能提供的任何帮助。
布莱恩
布莱恩,
根据我的经验,如果您在尝试调用REST服务时收到一个较长的HTML字符串作为响应,则该字符串通常表示某种HTML错误页面。 下载完整的字符串并在类似记事本的工具中进行检查(甚至将其保存到.htm文件并使用浏览器打开)可能会有所帮助,以查看是否提供了更多有关错误原因的线索。 >
如果这不能帮助诊断问题,我可以提供一个使用CL_HTTP_CLIENT类的基本模板,该模板的灵感来自我编写的一些代码,这些代码将SAP实例与第三方工具链接在一起。 与您的方法相比,存在一些差异,但希望这会有所帮助,以帮助您找到所需的答案:
希望这会有所帮助。
谢谢
Brian
嗨,Brian,
感谢您对下一期的评论。
我有一个适用于Chrome的下一个网址: https://junjitest.mineduc.cl/api-doc-parv/v1/docente/35605/rut/17878912?apikey=SpfBRV2HHyxAyaWcorai777RubbFGpYg
我已经修改了您的代码,如您所见:
响应是:
<!DOCTYPE HTML PUBLIC"-//IETF//DTD HTML 2.0//EN">#
#未找到
#在此服务器上找不到请求的URL/api-doc-parv/v1/docente/35605/rut/17878912。
##<地址> Apache/2.2.15
我将不胜感激。
此致
JoséJaimes
一周热门 更多>