Cloudant 未经授权的请求

Cloudant Unathorized request

我一直在尝试解决这个关于从 IBM-bluemix 服务访问我的 cloudant 数据库的问题。 我在 Android 工作室中这样设置我的 URL:

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

然后尝试通过以下方式访问它:

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

但是,当我尝试 access/modify 数据库中的任何内容时, 例如:

client.createDB("test_DB");

我收到错误:

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

我错过了什么? 我见过许多不同的方法来处理来自 cloudant 的查询,但这是我得到的最接近的方法。

我是否完全误解了从现有数据库查询的工作原理?

在命令行中使用 curl 尝试您的凭据(请参阅 https://cloud.ibm.com/docs/services/Cloudant/tutorials?topic=cloudant-databases#databases

验证您的帐户是否接受旧凭据 ("username and password") 或 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-

如果您使用的是 Cloudant 遗留 API 密钥,您将无法执行帐户管理员级别的操作,例如列出或创建数据库,因为遗留 API 密钥与特定数据库不是帐户。如果这是您使用的凭据类型,您可以按照您所做的方式初始化客户端并通过以下方式获取现有数据库:

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