我一直试图解决这个问题,从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();
但是,当我尝试访问/修改数据库中的任何内容时,例如:
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)
验证您的帐户是否接受旧凭据(“用户名和密码”)或IAM令牌。
如果您使用的是Cloudant旧版API密钥,则无法执行帐户管理员级别操作,例如列出或创建数据库,因为旧版API密钥与特定数据库(而非帐户)相关联。如果这是您正在使用的凭据类型,则可以按照您已完成的方式初始化客户端,并通过以下方式获取现有数据库:
Database db = client.database("test_DB", false);