Cloudant Неразрешенный запрос - PullRequest
1 голос
/ 22 апреля 2019

Я пытался решить эту проблему с доступом к моей облачной БД из сервисов IBM-bluemix. Я установил свой URL в Android-студии так:

URL url = new URL("https://XXXX-XXXX-XXXX-XXXX-XXXX-bluemix.cloudant.com");

А затем пытается получить к нему доступ:

CloudantClient client =  ClientBuilder.url(url)
                .username("myusername")
                .password("mypassword")
                .build();

Однако, когда я пытаюсь получить доступ / изменить что-либо в моей базе данных, например:

client.createDB("test_DB");

Я получаю ошибку:

Error: unauthorized. Reason: one of _admin, server_admin is required for this request.

Что мне не хватает? Я видел много разных способов подойти к запросам из cloudant, но это самый близкий мне пример.

Я просто совершенно не понял, как работает запрос из существующей базы данных?

Ответы [ 2 ]

1 голос
/ 23 апреля 2019

Если вы используете устаревший ключ API Cloudant, вы не сможете выполнять действия на уровне администратора учетной записи, такие как перечисление или создание баз данных, поскольку устаревшие ключи API связаны с конкретными базами данных, а не с учетной записью.Если это тип учетных данных, которые вы используете, вы можете инициализировать клиент так, как вы это сделали, и получить существующую базу данных с помощью:

Database db = client.database("test_DB", false);

1 голос
/ 23 апреля 2019

Попробуйте свои учетные данные, используя curl в командной строке (см. https://cloud.ibm.com/docs/services/Cloudant/tutorials?topic=cloudant-databases#databases)

Убедитесь, что ваша учетная запись принимает устаревшие учетные данные ("имя пользователя и пароль") или токены IAM.

См. https://cloud.ibm.com/docs/services/Cloudant/guides?topic=cloudant-ibm-cloud-identity-and-access-management-iam-#ibm-cloud-identity-and-access-management-iam-

...