Проблема LoopJ AndroidAsyncHttp StringEntity

Я использую StringEntity с AndroidAsyncHttp, но он устарел. Есть ли другой способ заставить это работать при отправке моей строки json так же, как я на свой веб-сервис?

public void getPropertyImagesAsync(final String[] params) {
    JsonStructure jsonStructure = new JsonStructure();
    jsonStructure.methodName = "getPropertyWorkorders";
    jsonStructure.serviceName = "mobileapi";
    jsonStructure.parameters = params;

    String jsonString = new Gson().toJson(jsonStructure);

    StringEntity entity = null;
    try {
        entity = new StringEntity(jsonString);
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }

    AsyncHttpClient client = new AsyncHttpClient();
    client.post(visnetawrap, BASE_URL + "/amf/gateway/?contentType=application/json", entity, "application/json", new TextHttpResponseHandler() {
        @Override
        public void onFailure(int i, Header[] headers, String s, Throwable throwable) {
            AppUtils.outputJsonString(s);
        }

        @Override
        public void onSuccess(int i, Header[] headers, String s) {
            AppUtils.outputJsonString(s);
        }
    });
}

person Joe Ginley    schedule 07.08.2015    source источник
comment
почему бы не попробовать okhttp http://square.github.io/okhttp/   -  person Luis404    schedule 07.08.2015
comment
Есть примеры? Я использовал модернизацию с помощью okhttp, но она кажется медленной, не может обрабатывать несколько запросов и не может легко отменить запрос.   -  person Joe Ginley    schedule 07.08.2015


Ответы (2)


Следите за ситуацией, но вы, вероятно, можете пока продолжать использовать StringEntity.

StringEntity на самом деле является частью Apache HTTP, а не android-async-http. Google объявил устаревшим весь Apache HTTP API в SDK 22 и удалил его из библиотеки-заглушки в SDK 23 (предварительная версия M). Сообщается, что он все еще работает на устройствах M, но вы не можете его скомпилировать.

К сожалению, android-async-http был разработан для Apache HTTP. Хуже того, он раскрывает использование этого API, поэтому его нельзя изменить, не вызвав поломки. Разработчики объявили о планах обеспечения постоянной поддержки, возможно, путем введения зависимости от автономного Apache HTTP.

person Kevin Krumwiede    schedule 07.08.2015

Я рекомендую вам использовать библиотеку для ваших сетевых операций. Вы можете использовать модернизацию. Это мощная и простая в использовании библиотека.

http://square.github.io/retrofit/

person savepopulation    schedule 07.08.2015