2012-05-15 3 views
6

私は同じネットワークコールを2回行うことができない奇妙なグリッジがあります。アンドロイドHttpResponseはいつも呼び出されて二度目に死ぬ

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

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

初めてネットワークを呼び出すと、正常に動作し、データが返されます。ネットワークコールを2回実行すると(ここではブレークポイントを実行しました)、HttpResponseオブジェクトに到達し、ネットワークコールを実行しますが、すぐにIOExceptionキャッチにジャンプします。

postオブジェクトには常に同じデータがあり、クッキーはすべて含まれています。

私はサーバーについて知っているわけではありませんが(drupalを実行しています)、サーバーの問題のようです。

これがなぜ起こるのか、誰かが明らかにすることができますか?なぜデータを2回目に戻すことが禁止されるのですか?

応答オブジェクトを突破した場合、データの代わりに""が返されることがあります。それは、私はエラーをログに記録された第一の方法で、すべての

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

それがスロー例外とは何ですか? – techiServices

+0

IOException、私が知っているのは – CQM

+0

ですが、IOExceptionはすべてのIO例外をカバーしています。 LogCatは何を言いますか? – techiServices

答えて

0

に役立ちます場合も、クラッシュを引き起こしたので、私は正確なエラーが何であったか知りませんでした。

本当の例外は、サーバがAPIを処理する方法が

を呼び出すので、これが答えですCaused by: org.apache.http.client.CircularRedirectExceptionだったから:

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

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

関連する問題