谁能解释我如何在Android中使用ElasticSearch API.
是否有人成功将API集成到了androID中?
我在Gradle中添加了以下依赖项:
compile 'org.elasticsearch.clIEnt:transport:5.2.1'
我当然遇到了问题:
Error:Execution Failed for task ‘:app:transformResourcesWithMergeJavaResForDeBUG’.
com.androID.build.API.transform.transformException: com.androID.builder.packaging.DuplicatefileException: Duplicate files copIEd in APK meta-inf/liCENSE
file1: C:\Users\dude.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpcore-nio\4.4.5\f4be009e7505f6ceddf21e7960c759f413f15056\httpcore-nio-4.4.5.jar
file2: C:\Users\dude.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpasyncclIEnt\4.1.2\95aa3e6fb520191a0970a73cf09f62948ee614be\httpasyncclIEnt-4.1.2.jar
file3: C:\Users\dude.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.dataformat\jackson-dataformat-yaml\2.8.6\8bd44d50f9a6cdff9c7578ea39d524eb519e35ab\jackson-dataformat-yaml-2.8.6.jar
file4: C:\Users\dude.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpcore\4.4.5\e7501a1b34325abb00d17dde96150604a0658b54\httpcore-4.4.5.jar
file5: C:\Users\dude.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.8.6\2ef7b1cc34de149600f5e75bc2d5bf40de894e60\jackson-core-2.8.6.jar
.
更新1:
好吧,我必须使用Android Asynchronous Http Client的REST API,因为adding packagingOptions不能解决问题
解决方法:
好的,所以我了解了如何使用库从AndroID访问REST API.
查看有关Android Asynchronous Http Client和Github的更多详细信息.
首先将权限添加到清单中
<uses-permission androID:name="androID.permission.INTERNET" />
在gradle中添加:
compile 'com.loopj.androID:androID-async-http:1.4.9'
现在,您可以像这样开始实现REST API:
import androID.util.Log;import com.loopj.androID.http.AsynchttpClIEnt;import com.loopj.androID.http.AsynchttpResponseHandler;import com.loopj.androID.http.JsonhttpResponseHandler;import com.loopj.androID.http.RequestParams;import org.Json.JsONArray;import org.Json.JsONObject;import cz.msebera.androID.httpclIEnt.header;public class ElasticRestClIEnt { private static final String BASE_URL = "http://httpbin.org/"; //http://localhost:9200/ private static final String CLASS_name = ElasticRestClIEnt.class.getSimplename(); private static AsynchttpClIEnt clIEnt = new AsynchttpClIEnt(); public static voID get(String url, RequestParams params, AsynchttpResponseHandler responseHandler) { clIEnt.get(getabsoluteUrl(url), params, responseHandler); } public static voID post(String url, RequestParams params, AsynchttpResponseHandler responseHandler) { clIEnt.post(getabsoluteUrl(url), params, responseHandler); } private static String getabsoluteUrl(String relativeUrl) { return BASE_URL + relativeUrl; } public voID gethttpRequest() { try { ElasticRestClIEnt.get("get", null, new JsonhttpResponseHandler() { // instead of 'get' use twitter/tweet/1 @OverrIDe public voID onSuccess(int statusCode, header[] headers, JsONObject response) { // If the response is JsONObject instead of expected JsONArray Log.i(CLASS_name, "onSuccess: " + response.toString()); } @OverrIDe public voID onSuccess(int statusCode, header[] headers, JsONArray response) { Log.i(CLASS_name, "onSuccess: " + response.toString()); } @OverrIDe public voID onFailure(int statusCode, header[] headers, String responseString, Throwable throwable) { super.onFailure(statusCode, headers, responseString, throwable); Log.e(CLASS_name, "onFailure"); // called when response http status is "4XX" (eg. 401, 403, 404) } @OverrIDe public voID onRetry(int retryNo) { Log.i(CLASS_name, "onRetry " + retryNo); // called when request is retrIEd } }); } catch (Exception e){ Log.e(CLASS_name, e.getLocalizedMessage()); } }}
总结 以上是内存溢出为你收集整理的如何在Android中使用ElasticSearch API全部内容,希望文章能够帮你解决如何在Android中使用ElasticSearch API所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)