Исключение Android-клиента Apache HTTP при выполнении только для LG G3 6.0

Я взял на себя приложение для Android, которое делает снимки и прикрепляет их к заданиям для более крупной программной системы у себя дома - до недавнего времени оно работало нормально.

Кажется, что только на телефонах LG G3, которые обновились до Android 6.0, есть исключение в этой процедуре:

public static String frapiGetRequest(String transaction, ArrayList<Content> parameters) {
    StringBuilder builder = new StringBuilder();
    DefaultHttpClient client = new DefaultHttpClient();
    HttpHost targetHost = new HttpHost(HOST,PORT,SCHEME);
    String url = SCHEME + "://" + HOST + "/" + transaction;
    if (parameters != null && parameters.size() > 0) {
        url += "?" + buildParameterString(parameters);
    }

    Utilities.bLog(TAG, "Making FrapiRequest -- " + url);

    try {
        HttpGet getRequest = new HttpGet(url);
        client.getCredentialsProvider().setCredentials(
                new AuthScope(targetHost.getHostName(), targetHost.getPort()),
                new UsernamePasswordCredentials(USERNAME, PASSWORD));

        /**Exception Occurs Here**/
        HttpResponse response = client.execute(getRequest);


        StatusLine statusLine = response.getStatusLine();
        int statusCode = -1;

        statusCode = statusLine.getStatusCode();
        if (statusCode == 200) {
            HttpEntity entity = response.getEntity();
            InputStream content = entity.getContent();
            BufferedReader reader = new BufferedReader(new InputStreamReader(content));
            String line;
            while ((line = reader.readLine()) != null) {
                builder.append(line);
            }
            Utilities.bLog(TAG,"Frapi Request Succeeded");
        } 
        else {
            Utilities.bLog(TAG, "Frapi Request Failed: " + url);
        }

    } catch (ClientProtocolException e) {
        e.printStackTrace();
        Utilities.eLog(e);
    } catch (IOException e) {
        e.printStackTrace();
        Utilities.eLog(e);
    } catch (Exception e) {
        e.printStackTrace();
        Utilities.eLog(e);
    }
    return builder.toString();
}

Трассировка стека

java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
at org.apache.http.impl.auth.DigestScheme.isGbaScheme(DigestScheme.java:210)
at org.apache.http.impl.auth.DigestScheme.processChallenge(DigestScheme.java:176)
at org.apache.http.impl.client.DefaultRequestDirector.processChallenges(DefaultRequestDirector.java:1097)
at org.apache.http.impl.client.DefaultRequestDirector.handleResponse(DefaultRequestDirector.java:980)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:490)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:560)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:492)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:470)
at com.rossware.sd_quickpics.Utilities.frapiGetRequest(Utilities.java:111)
at com.rossware.sd_quickpics.Business.authenticate(Business.java:83)
at com.rossware.sd_quickpics.MainActivity$AuthenticateAsyncTask.doInBackground(MainActivity.java:320)
at com.rossware.sd_quickpics.MainActivity$AuthenticateAsyncTask.doInBackground(MainActivity.java:307)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)

Об этом не было сообщено ни на одном другом телефоне. Я бы использовалHttpURLConnection Но он не поддерживает дайджест-аутентификацию (которая сейчас используется на нашем сервере frapi)

Я просто не уверен, есть ли способ продолжить использовать механизм аутентификации, который у нас есть, или мне нужно реализовать другой протокол в frapi (надеюсь, не ломая все наши существующие приложения ...), или есть другой способ обойти это вопрос для людей с этими телефонами? Эта проблема довольно ограничена (один клиент, у которого есть около 10 телефонов, не конец света, но определенно серьезная проблема для них)

Есть ли в Android что-нибудь, что я могу сделать, чтобы решить эту проблему для затронутых пользователей? Кажется ли, что код неправильный?

Ответы на вопрос(2)

Ваш ответ на вопрос