2012-05-15 5 views
6

Ich habe einen seltsamen Fehler, wo ich nicht zweimal den gleichen Netzwerkanruf machen kann.android HttpResponse immer stirbt beim zweiten Mal es heißt

HttpClient client = new DefaultHttpClient(); 
    HttpPost post = new HttpPost(url); 

    try { 
     HttpResponse response = client.execute(post, new BasicHttpContext()); 

Das erste Mal, wenn ich den Netzwerkanruf starte, funktioniert es gut, Daten werden zurückgegeben. Das zweite Mal, wenn ich den Netzwerkanruf durchführe (ich habe hier Breakpoints durchlaufen), kommt es zum HttpResponse-Objekt, führt den Netzwerkanruf aus, springt dann aber sofort zum IOException Catch.

Das Objekt post hat jedes Mal die gleichen Daten, die Cookies sind alle enthalten.

Ich bin nicht um irgendjemanden kenntnisreich über den Server (läuft drupal), aber es scheint wie ein Server-Problem.

Kann jemand erklären, warum das passieren würde? Warum sollte ich nicht ein zweites Mal Daten abrufen?

Um weitere Dinge zu beleuchten, wenn ich das Antwortobjekt durchbringe, kann ich sehen, dass es "" anstelle von Daten zurückgeben kann. wenn das überhaupt

05-15 11:22:34.612: E/(1094): ObjectService 
05-15 11:22:34.612: E/(1094): org.apache.http.client.ClientProtocolException 
05-15 11:22:34.612: E/(1094): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:557) 
05-15 11:22:34.612: E/(1094): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 
05-15 11:22:34.612: E/(1094): at com.fivepoints.service.ObjectService.getObject(ObjectService.java:121) 
05-15 11:22:34.612: E/(1094): at com.fivepoints.model.team.TeamView$ActivityListTask.doInBackground(TeamView.java:94) 
05-15 11:22:34.612: E/(1094): at com.fivepoints.model.team.TeamView$ActivityListTask.doInBackground(TeamView.java:1) 
05-15 11:22:34.612: E/(1094): at android.os.AsyncTask$2.call(AsyncTask.java:185) 
05-15 11:22:34.612: E/(1094): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306) 
05-15 11:22:34.612: E/(1094): at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
05-15 11:22:34.612: E/(1094): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) 
05-15 11:22:34.612: E/(1094): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) 
05-15 11:22:34.612: E/(1094): at java.lang.Thread.run(Thread.java:1019) 
05-15 11:22:34.612: E/(1094): Caused by: org.apache.http.client.CircularRedirectException: Circular redirect to 'http://mysite.com/demoObject/_c' 
05-15 11:22:34.612: E/(1094): at org.apache.http.impl.client.DefaultRedirectHandler.getLocationURI(DefaultRedirectHandler.java:173) 
05-15 11:22:34.612: E/(1094): at org.apache.http.impl.client.DefaultRequestDirector.handleResponse(DefaultRequestDirector.java:903) 
05-15 11:22:34.612: E/(1094): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:468) 
05-15 11:22:34.612: E/(1094): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 
05-15 11:22:34.612: E/(1094): ... 10 more 
+0

Was Ausnahme ist es wirft: Dies ist die Antwort von

Die wirkliche Ausnahme war Caused by: org.apache.http.client.CircularRedirectException, weil die Art und Weise der Server API

Anrufe behandelt? – techiServices

+0

IOException, ich erwähne das – CQM

+0

Ich weiß, aber IOException deckt alle IO-Ausnahmen. Was sagt der LogCat? – techiServices

Antwort

0

Zunächst wird die Art und Weise hilft, wurde ich Fehler verursacht auch einen Absturz angemeldet haben, so dass ich nicht weiß, was die genaue Fehler war.

https://stackoverflow.com/a/6699772/727429

HttpClient client = new DefaultHttpClient(); client.getParams().setParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS, true);