Apache-Mime Android Rest Client/ Создание Android Rest клиента с использованием библиотеки Apache-Mime
Существует довольно много способов создания Android rest клиента. Недавно я описывал, как создать простой клиент средствами библиотеки Android Asynchronous Http Client . В этой заметке мы воспользуемся Apache http Mime(здесь же и описание для maven) библиотекой. Библиотека написана на Java, без использования Android SDK – этот код будет также прекрасно работать в Java SE приложении. Стоит отметить, что эта библиотека не является потоко – безопасной, поэтому этот код необходимо поместить в отдельный поток, а еще лучше, обернуть в оболочку AsyncTask.
DefaultHttpClient localDefaultHttpClient = new DefaultHttpClient(); HttpPost localHttpPost = new HttpPost("http://192.168.5.199:8084/RestApplication/requestFile/new"); try{ JSONObject jsonobj = new JSONObject(); try { jsonobj.put("ip", myIp); jsonobj.put("destination", destIp); jsonobj.put("port", destinationPort); } catch (JSONException e) { e.printStackTrace(); } StringEntity se = new StringEntity(jsonobj.toString()); se.setContentType("application/json;charset=UTF-8"); se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"application/json;charset=UTF-8")); localHttpPost.setEntity(se); HttpResponse localHttpResponse = localDefaultHttpClient.execute(localHttpPost); System.out.println("responsecode " + localHttpResponse.getStatusLine().getStatusCode()); if(localHttpResponse.getStatusLine().getStatusCode()==200){ Log.i(TAG,"Success"); } }catch(IOException e){ e.printStackTrace(); } }
Описание:
1. Создаем экземпляры объектов DefaultHttpClient и HttpPost(для post запроса). Для экземпляра HttpPost указываем вызываемый URL.
2. Создаем JsonObject и добавляем в него необходимые параметры.
3. Далее переводим JsonObject в String строку, указываем mine тип application/json и кодировку.
4. Далее связываем тело запроса с HttpPost и делаем вызов удаленного Rest метода.
5. Проверяем возвращаемый тип
Готово. Теперь Вы и сами убедились, как просто работать с Rest Запросами в Android
Aw, this was an exceptionally nice post.