В доступе отказано из-за неверных учетных данных, ошибка REST API. Как решить?

Я следил за документацией, здесь: и здесь: Попытка для интеграции с сервисом Personality Insights через Android Java. Однако после запуска приложения и использования правильного имени пользователя и пароля, как указано в руководстве ... (руководство не ясно (2-й пункт в разделе «Перед тем, как начать»), какой набор учетных данных использовать - в нем говорится, что получить «учетные данные службы» и учетные данные из созданной новой службы - я пробовал с обоими, и оба потерпели неудачу с той же ошибкой ниже.)

Ошибка:

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 / Ok http: -> 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 / ? Д / Ок http: ‹- 401 Not Authorized https://gateway.watsonplatform.net/personality-insights/api/v3/profile?version=2017-10-13 (78 мс, тело неизвестной длины) 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 / ERROR: Unauthorized: доступ запрещен из-за неверных учетных данных

com.ibm.watson.developer_cloud.service.exception.UnauthorizedException: UnauthorizedException: Unauthorized: доступ запрещен из-за неверных учетных данных в com.ibm.watson.developer_cloud.service.WatsonService.processServiceCall (WatsonService.java:492) на com.ibm .developer_cloud.service.WatsonService $ 2.execute (WatsonService.java:254) в com.upen.personalityapp.MainActivity $ RetrieveFeedTask.doInBackground (MainActivity.java:105) в com.upen.personalityapp.MainActivity $ Retrievedo. java: 87) в android.os.AsyncTask $ 2.call (AsyncTask.java:306) в java.util.concurrent.FutureTask.run (FutureTask.java:237) в android.os.AsyncTask $ SerialExecutor $ 1.run (AsyncTask .java: 244) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1133) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java.lang (ThreadPoolExecutor.java:607.Thread.ava. 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. Так ли она должна работать в браузере?


person Zac    schedule 12.12.2017    source источник
comment
Вам необходимо передать учетные данные как service.setUsernameAndPassword(username, password);   -  person hustlecoder    schedule 12.12.2017
comment
Да, я передаю там свои верительные грамоты. Я использовал myUsername и myPassword, чтобы не раскрывать его здесь. Спасибо.   -  person Zac    schedule 12.12.2017
comment
Может быть, я был неясен в своем комментарии. Используйте (myUsername, myPassword) вместо ({myUsername}, {myPassword});   -  person hustlecoder    schedule 12.12.2017
comment
Вместо service.setUsernameAndPassword (имя пользователя, пароль); я попробовал service.setUsernameAndPassword (имя пользователя, пароль); и это сработало. Спасибо!   -  person Zac    schedule 13.12.2017
comment
Знаете ли вы, как обрабатывать возвращенный вывод JSON и отображать его в виде круговой диаграммы? Просто ищу обзор того, как лучше всего этого добиться. Вот пример вывода: justpaste.it/1ei1o   -  person Zac    schedule 13.12.2017
comment
Это другой вопрос для другой темы. Задайте для него новый вопрос.   -  person hustlecoder    schedule 13.12.2017
comment
Да. Спасибо.   -  person Zac    schedule 13.12.2017


Ответы (1)


Для кого-то в будущем;

Вместо service.setUsernameAndPassword(username, password); я попробовал service.setUsernameAndPassword("username", "password");, и это сработало.

person Zac    schedule 13.12.2017