由于401授权错误,无法将IoT消息管理服务连接到UI5

2020-08-18 05:09发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我目前正在尝试通过试用帐...

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

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


你好

我目前正在尝试通过试用帐户上的getData()方法将iotmms连接到SAP UI5应用程序模板。 我只是一个学生,所以如果这个问题不重要,我深表歉意。 我使用此博客文章作为参考: https://blogs.sap.com/2016/04/10/communicate-with-iot-in-your-webide-project /

问题是IOT.js getData()方法在我的UI5应用程序中始终返回401 http授权错误。 但是,使用IOT.js getDevices()的iotrdms部分工作正常(因为已正确设置了目标)。

当我用列表中的选定设备触发getData()方法时,它返回的内容是:

以下是WebIDE中触发此方法的代码:

这是我的neo-app.json文件(与博客文章中的设置完全一样):

这是我的hcp目的地。 有人建议,iootmms还需要在其URL末尾包含/http,但是它只会返回http 404而不是401。

我相信这是四个问题之一:

  1. iotmms hcp目标设置不正确。
  2. 我的neo-app.json文件目标不正确,或者有一种新的设置方法。
  3. 与getData()通信时,授权标头信息不正确。 我什至不确定getData()方法是否需要标题信息。 在任何使用它的地方都找不到示例。
  4. 我尝试从中获取的网址不正确。

奇怪的是,无论有没有授权,pushData()方法(我认为使用的是mms url)都可以正常工作。

我还更新了消息管理服务,并重新注入了IOT.js文件,但似乎都没有修复它。 有人还建议关闭hcp iotmms目标上的授权,但这也不起作用。

如果有人能指出正确的解决方法,我将非常感激。 如果您需要其他任何信息来解决此问题,请告诉我。

谢谢

Garrett

401errors.jpg (31.8 kB)
3条回答
Aaron 3364
2020-08-18 05:21

我在使用" postData"时遇到了同样的问题。 正如我在屏幕快照中看到的那样,您已使用" BasicAuthentication"定义了" iotmms"目的地(并在此肯定输入了HCP凭据)。 我做了同样的事情,但没有成功。 解决方案是将其更改为" NoAuthentication"。 否则,不会将您在JS代码中创建的带有设备令牌的"授权"标头传递给MMS,而是传递给您的HCP凭证。

似乎MMS的某些功能需要设备令牌作为身份验证(如" postData"和" getData"),而某些则需要HCP凭据(如" pushData"),因为如果您打开新的浏览器会话并输入

 https://iotmmsXXXXXXXtrial.hanatrial.ondemand.com/com.sap.iotservices.mms/v1/api/http/push/

在浏览器地址栏中,您会看到身份验证弹出窗口,可在其中输入HCP用户名/密码,但如果输入

 https://iotmmsXXXXXXXtrial.hanatrial.ondemand.com/com.sap.iotservices.mms/v1/api/http/data 

由于缺少带有设备令牌的Authorization标头,您直接获得"未授权对请求资源的访问(HTTP 401)"。

一周热门 更多>