Je crée une application android qui stocke des données dans CouchDB, et j'ai besoin de créer une base de données à partir de l'application android. J'ai besoin d'exécuter la commande "curl-X PUT http://user:[email protected]:5984/myDataBase" avec les méthodes java.Comment créer une base de données dans CouchDB en indiquant le nom d'utilisateur et mot de passe
J'ai mis en œuvre les fonctions suivantes:
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;
}
J'appelle la fonction par:
createDatabase("http://user:[email protected]/","myDataBase");
mais il n'y a aucun résultat. Je pense que le problème est à l'utilisateur: passwd car en mode « partie admin » l'funcion fonctionne très bien appel par:
createDatabase("http://127.0.0.1/","myDataBase");
Pas trop familier avec l'environnement de l'application android, mais juste pour être paranoïaque avez-vous essayé la commande curl réelle à partir d'un terminal, pour être sûr à 100% que l'utilisateur: passwd que vous utilisez sont corrects? – rossdavidh