gpt4 book ai didi

android - 如何在 CouchDB 中创建一个数据库,指示用户名和密码

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:15:41 28 4
gpt4 key购买 nike

我正在创建一个将数据存储在 CouchDB 中的 android 应用程序,我需要从 android 应用程序创建一个数据库。我需要使用 Java 方法执行命令“curl-X PUT http://user:passwd@127.0.0.1:5984/myDataBase”。

我实现了以下功能:

public static boolean createDatabase(String hostUrl, String databaseName) {
try {
HttpPut httpPutRequest = new HttpPut(hostUrl + databaseName);
JSONObject jsonResult = sendCouchRequest(httpPutRequest);

return jsonResult.getBoolean("ok");
}
catch (Exception e) {
e.printStackTrace();
}
return false;
}

private static JSONObject sendCouchRequest(HttpUriRequest request) {
try {
HttpResponse httpResponse = (HttpResponse) new DefaultHttpClient().execute(request);
HttpEntity entity = httpResponse.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
String resultString = convertStreamToString(instream);
instream.close();
JSONObject jsonResult = new JSONObject(resultString);

return jsonResult;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

我通过以下方式调用该函数:

createDatabase("http://user:passwd@127.0.0.1/","myDataBase");

但是没有结果。我认为问题出在 user:passwd 中,因为在“管理方”模式下,函数可以正常调用:

createDatabase("http://127.0.0.1/","myDataBase");

最佳答案

我有同样的问题 -> 你必须在 header 中使用 HTTP 身份验证。所以只需将此标题行添加到您的请求中:

private static void setHeader(HttpRequestBase request)  {
request.setHeader("Accept", "application/json");
request.setHeader("Content-type", "application/json");
request.setHeader("Authorization", "Basic base64(username:password)");
}

请记住,您必须使用 base64 对短语“用户名:密码”进行编码。这看起来像这样:

request.setHeader("Authorization", "Basic 39jdlf9udflkjJKDKeuoijdfoier");

关于android - 如何在 CouchDB 中创建一个数据库,指示用户名和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5636899/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com