从 CouchDB 上的数据库获取主要数据

Get main data from a Database on CouchDB

我在 Android 上使用 CouchDb + CouchBase Lite,但是我在监视复制时遇到了很多麻烦。有时它会在所有数据传输完成之前完成。

如果你在浏览器上打字(当然如果你使用 couchbd) http://1xx.xxx.xxx.x:5984/your_dataBase 你会得到这样的东西:

{"db_name":"your_dataBase","doc_count":23123,"doc_del_count":4812312,"update_seq":1050713,"purge_seq":0,"compact_running":false,"disk_size":2598379649,"data_size":1231223,"instance_start_time":"14123213127176","disk_format_version":6,"committed_update_seq":1050713}

或多或少我可以知道具有此值的文档编号,因此在我的客户端代码中我可以将该编号与我拥有的文档进行比较

"doc_del_count":4812312

但我不知道如何访问 json "main" 数据,请注意 http://184.xxx.xxx.x:xxxx/your_dataBase 有用户和密码。

所以我的问题是:如何获取 CouchDB 数据?

您必须使用主数据库 url 创建基本身份验证,比方说

xxx.xxx.x.xx:5984/youDB

代码:

final String basicAuth =
                        Base64.encodeToString("yourUser:yourPass"
                                .getBytes(), Base64.NO_WRAP).replace("\n", "");

                URL url = new URL(PreferenceManager.getCouchdbserver());
                URLConnection urlc = url.openConnection();
                HttpGet httppost = new HttpGet(urlc.getURL().toString());
                HttpClient httpclient = new DefaultHttpClient();
                httppost.setHeader("Authorization", "Basic "+basicAuth);
                //HttpReponse response.....and all that stuff