У меня есть фрагмент, где я вызываю вызов API с использованием библиотеки Async Http.ClientProtocolException при вызове API во второй раз в этом фрагменте
Это код:
private void getPeers() {
Log.i("REST", "getPeers");
RestClient.get(RestClient.PEERS_URL, null, new TextHttpResponseHandler() {
@Override
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
Log.i("REST", "onFailure");
stopRefreshing();
if (statusCode == 0) {
showNoConnectionError();
}
}
@Override
public void onSuccess(int statusCode, Header[] headers, String responseString) {
Log.i("REST", "onSuccess");
stopRefreshing();
// Create arraylist from json
peerArrayList = new Gson().fromJson(responseString, new TypeToken<List<Peer>>() {
}.getType());
// Show ListView
populateListView(peerArrayList);
}
});
}
Когда я называю getPeers() в первый раз, все работает хорошо.
После того, как он называется во второй раз, он загружается в течение 5-10 секунд, а затем истекает время.
Это журнал после того, как его называют в 2 раза:
07-22 18:33:08.909 30671-30671/com.challenge.challengeapp I/REST﹕ getPeers
07-22 18:33:09.044 30671-30671/com.challenge.challengeapp I/REST﹕ onSuccess
07-22 18:33:11.707 30671-30671/com.challenge.challengeapp I/REST﹕ getPeers
07-22 18:33:19.589 30671-6125/com.challenge.challengeapp W/System.err﹕ org.apache.http.client.ClientProtocolException
07-22 18:33:19.593 30671-6125/com.challenge.challengeapp W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:562)
07-22 18:33:19.594 30671-6125/com.challenge.challengeapp W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:492)
07-22 18:33:19.594 30671-6125/com.challenge.challengeapp W/System.err﹕ at com.loopj.android.http.AsyncHttpRequest.makeRequest(AsyncHttpRequest.java:148)
07-22 18:33:19.594 30671-6125/com.challenge.challengeapp W/System.err﹕ at com.loopj.android.http.AsyncHttpRequest.makeRequestWithRetries(AsyncHttpRequest.java:179)
07-22 18:33:19.594 30671-6125/com.challenge.challengeapp W/System.err﹕ at com.loopj.android.http.AsyncHttpRequest.run(AsyncHttpRequest.java:108)
07-22 18:33:19.595 30671-6125/com.challenge.challengeapp W/System.err﹕ at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
07-22 18:33:19.595 30671-6125/com.challenge.challengeapp W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237)
07-22 18:33:19.595 30671-6125/com.challenge.challengeapp W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
07-22 18:33:19.595 30671-6125/com.challenge.challengeapp W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
07-22 18:33:19.597 30671-6125/com.challenge.challengeapp W/System.err﹕ at java.lang.Thread.run(Thread.java:818)
07-22 18:33:19.597 30671-6125/com.challenge.challengeapp W/System.err﹕ Caused by: org.apache.http.client.CircularRedirectException: Circular redirect to 'http://52.17.110.217/api/friends/'
07-22 18:33:19.597 30671-6125/com.challenge.challengeapp W/System.err﹕ at org.apache.http.impl.client.DefaultRedirectHandler.getLocationURI(DefaultRedirectHandler.java:178)
07-22 18:33:19.597 30671-6125/com.challenge.challengeapp W/System.err﹕ at org.apache.http.impl.client.DefaultRequestDirector.handleResponse(DefaultRequestDirector.java:928)
07-22 18:33:19.597 30671-6125/com.challenge.challengeapp W/System.err﹕ at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:480)
07-22 18:33:19.597 30671-6125/com.challenge.challengeapp W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:560)
07-22 18:33:19.597 30671-6125/com.challenge.challengeapp W/System.err﹕ ... 9 more
07-22 18:33:19.606 30671-30671/com.challenge.challengeapp I/REST﹕ onFailure
Если я называю это один раз, а затем перезапустить приложение, это работает. Это происходит, когда я называю это 2 раза подряд.
Вы решили эту проблему? –