Я создаю приложение для Android, которое хранит данные в CouchDB, и мне нужно создать базу данных из приложения для Android.Мне нужно выполнить команду "curl-X PUT http://user:passwd@127.0.0.1:5984/myDataBase" с помощью методов Java.
Я реализовал следующие функции:
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");
но результата нет. Думаю, проблема в пользователе: passwd, потому что в режиме "admin party" функция отлично работает, вызывая:
createDatabase("http://127.0.0.1/","myDataBase");