“由于凭据无效而拒绝访问”REST API错误。怎么解决?

时间:2017-12-12 05:43:30

标签: rest ibm-watson watson personality-insights

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

错误:

12-11 01:49:56.201 29584-29632 /? I / CredentialUtils:JNDI字符串查找不可用。 12-11 01:49:56.269 29584-29632 /? D / NetworkSecurityConfig:未指定Network Security Config,使用平台默认值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字节正文)12-11 01:49:56.803 29584-29632 /? D / OkHttp:< - 401 Not Authorized https://gateway.watsonplatform.net/personality-insights/api/v3/profile?version=2017-10-13(78ms,身份不明身体)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:Unauthorized:由于com的com.ibm.watson.developer_cloud.service.WatsonService.processServiceCall(WatsonService.java:492)上的凭据无效,访问被拒绝。 com.upen.personalityapp.MainActivity $ RetrieveFeedTask.doInBackground(MainActivity.java:105)中的ibm.watson.developer_cloud.service.WatsonService $ 2.execute(WatsonService.java:254)at com.upen.personalityapp.MainActivity $ RetrieveFeedTask.doInBackground (MainActivity.java:87)在android.os.AsyncTask $ 2.call(AsyncTask.java:306)at java.util.concurrent.FutureTask.run(FutureTask.java:237)at android.os.AsyncTask $ SerialExecutor $ 1。在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)的java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:607)上运行(AsyncTask.java:244)java.lang.Thread .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依赖项。

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

1 个答案:

答案 0 :(得分:0)

对于未来的人;

而不是service.setUsernameAndPassword(username, password);,我尝试了service.setUsernameAndPassword("username", "password");并且它有效。