2012-05-15 28 views
6

Tôi gặp trục trặc lạ khi không thể thực hiện cuộc gọi mạng giống nhau hai lần.HttpResponse android luôn chết lần thứ hai được gọi là

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

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

Lần đầu tiên tôi chạy cuộc gọi mạng hoạt động tốt, dữ liệu được trả lại. Lần thứ hai tôi chạy cuộc gọi mạng (Tôi đã chạy các điểm ngắt thông qua ở đây) nó được cho đối tượng HttpResponse, chạy cuộc gọi mạng, nhưng sau đó ngay lập tức nhảy đến bắt IOException.

đối tượng post có cùng dữ liệu mỗi lần, tất cả cookie đều được bao gồm.

Tôi không xung quanh ai am hiểu về máy chủ (chạy drupal), nhưng có vẻ như vấn đề máy chủ.

Ai đó có thể làm sáng tỏ lý do điều này xảy ra? Tại sao tôi bị cấm lấy lại dữ liệu lần thứ hai?

Để làm sáng tỏ mọi thứ, nếu tôi vượt qua đối tượng phản hồi, tôi có thể thấy nó có thể trả lại "" thay vì dữ liệu. nếu điều đó giúp ích cho tất cả

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

là gì ngoại trừ nó ném? – techiServices

+0

IOException, tôi đề cập đến rằng – CQM

+0

Tôi biết nhưng IOException bao gồm tất cả các ngoại lệ IO. LogCat nói gì. – techiServices

Trả lời

0

Lúc đầu, tôi đã ghi lỗi cũng gây ra sự cố, vì vậy tôi không biết chính xác lỗi là gì.

Ngoại lệ thực là Caused by: org.apache.http.client.CircularRedirectException vì cách thức các máy chủ xử lý API gọi

Đây là câu trả lời từ:

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

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