【问题标题】:"Access is denied due to invalid credentials" REST API error. How to solve?“由于凭据无效而拒绝访问”REST API 错误。怎么解决?
【发布时间】:2017-12-12 05:43:29
【问题描述】:

我按照文档 here: 和 here: 尝试通过 Android Java 集成到 Personality Insights 服务。 但是,在应用程序运行后,并使用指南中提到的正确用户名和密码......(指南不清楚(“开始之前”中的第二个要点)使用哪组凭据 - 它说 get创建的新服务中的“服务凭据”和凭据-我尝试了两者,但都失败了,并出现以下相同的错误。)

错误:

12-11 01:49:56.201 29584-29632/? I/CredentialUtils:JNDI 字符串查找不可用。 12-11 01:49:56.269 29584-29632/? D/NetworkSecurityConfig:未指定网络安全配置,使用平台默认值 12-11 01:49:56.723 29584-29632/? D/OkHttp: --> POST https://gateway.watsonplatform.net/personality-insights/api/v3/profile?version=2017-10-13 http/1.1 (1297-byte body) 12-11 01:49:56.803 29584-29632/? D/OkHttp: https://gateway.watsonplatform.net/personality-insights/api/v3/profile?version=2017-10-13 (78ms, unknown-length body) 12-11 01:49:56.863 29584-29632/? E/WatsonService:POST https://gateway.watsonplatform.net/personality-insights/api/v3/profile?version=2017-10-13,状态:401,错误:未授权 12-11 01:49:56.865 29584-29632/? E/错误:未经授权:由于凭据无效,访问被拒绝

com.ibm.watson.developer_cloud.service.exception.UnauthorizedException:未经授权:由于 com.ibm.watson.developer_cloud.service.WatsonService.processServiceCall(WatsonService.java:492) 处的凭据无效,访问被拒绝。 ibm.watson.developer_cloud.service.WatsonService$2.execute(WatsonService.java:254) at com.upen.personalityapp.MainActivity$RetrieveFeedTask.doInBackground(MainActivity.java:105) at com.upen.personalityapp.MainActivity$RetrieveFeedTask.doInBackground (MainActivity.java:87) 在 android.os.AsyncTask$2.call(AsyncTask.java:306) 在 java.util.concurrent.FutureTask.run(FutureTask.java:237) 在 android.os.AsyncTask$SerialExecutor$1。在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 在 java.lang.Thread 的 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 运行(AsyncTask.java:244) .run(Thread.java:761) 12-11 01:49:56.866 29584-29584/?

这是我正在使用的代码;我正在尝试将“文本”输入传递给服务。

        service = new PersonalityInsights("2017-10-13");
        service.setUsernameAndPassword("{myUsername}", "{myPassword}");
        Profile profile = service.getProfile(text).execute();
        System.out.println(profile);
        return profile.toString();

我正在使用 com.ibm.watson.developer_cloud:personality-insights:3.8.0 依赖项。

我尝试通过浏览器连接到错误中的 URL (https://gateway.watsonplatform.net/personality-insights/api/v3/profile?version=2017-10-13)。它提示输入用户名/密码组合。我从我的 IBM Cloud Lite 服务输入了我的详细信息,但它引发了 HTTP 错误 405。这是否应该在浏览器上工作?

【问题讨论】:

  • 您需要将凭据传递为service.setUsernameAndPassword(username, password);
  • 是的,我正在那里传递我的凭据。我使用了“myUsername”和“myPassword”,以免在此处公开。谢谢。
  • 也许我的评论不清楚。使用 (myUsername, myPassword) 代替 ("{myUsername}", "{myPassword}");
  • 我尝试了 service.setUsernameAndPassword("username", "password"); 而不是 service.setUsernameAndPassword(username, password);它奏效了。谢谢!
  • 您是否也知道如何处理返回的 JSON 输出并将其显示为饼图?只是寻找如何最好地实现这一目标的概述。这是一个示例输出:justpaste.it/1ei1o

标签: rest ibm-watson watson personality-insights


【解决方案1】:

为了将来的某个人;

我尝试了service.setUsernameAndPassword("username", "password"); 而不是service.setUsernameAndPassword(username, password);,它成功了。

【讨论】:

    猜你喜欢
    • 2021-09-16
    • 2018-02-23
    • 2012-10-28
    • 2012-04-20
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多