REST API-使用REST查找进行身份验证

2020-08-27 13:28发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我们与AWS Client有一个接口。 因此,为了与他们集成,客户端共享了Json文件。 在处理从PI到第三方的数据之前,如果响应成功,则需要查找凭据,然后我们需要传递实际数据。 因此,为了实现查找,我们关注了博客:

' https://blogs.sap.com/2017/01/23/oauth-2.0-authentication-within-a-udf-mapping-be-included-in-rest- 接收方频道/'

并创建了REST Receiver查找通道而不是HTTPS。

,用于查找凭据的参数是:{" parameters":[" DBIDXXX"," USER"," Password",XXX]}

在Postman中尝试成功时,在执行映射时尝试执行映射时抛出错误。 以下是代码-

String token =""; StringBuffer sb = new StringBuffer(); AbstractTrace trace = container.getTrace();

尝试{

Channel channel = LookupService.getChannel(BusinessComponent,ChannelName);

SystemAccessor访问器= LookupService。 getSystemAccessor(channel);

MappingTrace重要跟踪; Importanttrace = container.getTrace();

MappingTrace mt = container.getTrace();

String RestXML = token1;

InputStream inputStream =新的ByteArrayInputStream(RestXML.getBytes());

getTrace()。addDebugMessage(" Request:" + RestXML);

com.sap.aii.mapping.lookup.Payload有效负载= LookupService.getXmlPayload(inputStream);

//3.执行查找。 com.sap.aii.mapping.lookup.Payload结果= accessor.call(有效载荷); mt.addInfo(" Input:" + RestXML); byte [] b =新的byte [4096];

for(int n;(n = result.getContent()。read(b))!= -1;)

{sb.append(new String(b,0,n)); } getTrace()。addDebugMessage(" Response:" + sb);

mt.addInfo("响应:" + sb);

int i = sb.indexOf(" \" response_error \":\"")+ 16;

令牌= sb.substring(i,20);

getTrace()。addInfo(" Token:" + token);

}

catch(Exception e){e.printStackTrace();

}

最终{//5.关闭访问器以释放资源。 //if(accessor!= null)accessor.close();

}返回令牌;

您能为此提供帮助吗?谢谢!

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我们与AWS Client有一个接口。 因此,为了与他们集成,客户端共享了Json文件。 在处理从PI到第三方的数据之前,如果响应成功,则需要查找凭据,然后我们需要传递实际数据。 因此,为了实现查找,我们关注了博客:

' https://blogs.sap.com/2017/01/23/oauth-2.0-authentication-within-a-udf-mapping-be-included-in-rest- 接收方频道/'

并创建了REST Receiver查找通道而不是HTTPS。

,用于查找凭据的参数是:{" parameters":[" DBIDXXX"," USER"," Password",XXX]}

在Postman中尝试成功时,在执行映射时尝试执行映射时抛出错误。 以下是代码-

String token =""; StringBuffer sb = new StringBuffer(); AbstractTrace trace = container.getTrace();

尝试{

Channel channel = LookupService.getChannel(BusinessComponent,ChannelName);

SystemAccessor访问器= LookupService。 getSystemAccessor(channel);

MappingTrace重要跟踪; Importanttrace = container.getTrace();

MappingTrace mt = container.getTrace();

String RestXML = token1;

InputStream inputStream =新的ByteArrayInputStream(RestXML.getBytes());

getTrace()。addDebugMessage(" Request:" + RestXML);

com.sap.aii.mapping.lookup.Payload有效负载= LookupService.getXmlPayload(inputStream);

//3.执行查找。 com.sap.aii.mapping.lookup.Payload结果= accessor.call(有效载荷); mt.addInfo(" Input:" + RestXML); byte [] b =新的byte [4096];

for(int n;(n = result.getContent()。read(b))!= -1;)

{sb.append(new String(b,0,n)); } getTrace()。addDebugMessage(" Response:" + sb);

mt.addInfo("响应:" + sb);

int i = sb.indexOf(" \" response_error \":\"")+ 16;

令牌= sb.substring(i,20);

getTrace()。addInfo(" Token:" + token);

}

catch(Exception e){e.printStackTrace();

}

最终{//5.关闭访问器以释放资源。 //if(accessor!= null)accessor.close();

}返回令牌;

您能为此提供帮助吗?谢谢!

付费偷看设置
发送
1条回答
粗暴的香蕉
1楼 · 2020-08-27 13:57.采纳回答

大家好,

我得到了预期的输出,需要在"休息频道"的"标题"选项卡中添加标题。

此致

Irfan

一周热门 更多>