我一直在尝试解决有关从IBM-bluemix服务访问我的cloudant数据库的问题。 我已经在Android Studio中设置了这样的网址:
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进行查询的方法,但这是我所获得的最接近的方法。
我是否完全误解了从现有数据库进行查询的方式?
答案 0 :(得分:1)
在命令行上使用curl尝试使用凭据(请参见https://cloud.ibm.com/docs/services/Cloudant/tutorials?topic=cloudant-databases#databases)
验证您的帐户是否接受旧式凭据(“用户名和密码”)或IAM令牌。
答案 1 :(得分:1)
如果您正在使用Cloudant旧版API密钥,则将无法执行帐户管理员级别的操作,例如列出或创建数据库,因为旧版API密钥与特定数据库而非帐户相关联。如果这是您使用的凭据类型,则可以通过以下方式初始化客户端,并通过以下方式获取现有数据库:
Database db = client.database("test_DB", false);