- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个奇怪的故障,我无法两次进行相同的网络调用。
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(url);
try {
HttpResponse response = client.execute(post, new BasicHttpContext());
我第一次运行网络调用时它工作正常,返回了数据。我第二次运行网络调用(我在此处运行断点)它到达 HttpResponse 对象,运行网络调用,但随后立即跳转到 IOException
捕获。
post
对象每次都有相同的数据,cookie 都包含在内。
我周围没有任何了解服务器(运行 drupal)的人,但这似乎是服务器问题。
有人可以阐明为什么会发生这种情况吗?为什么我会被禁止第二次取回数据?
为了进一步阐明事情,如果我突破响应对象,我可以看到它可能返回 ""
而不是数据。如果这有帮助的话
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
最佳答案
起初我记录错误的方式也导致了崩溃,所以我不知道确切的错误是什么。
真正的异常是 Caused by: org.apache.http.client.CircularRedirectException
因为服务器处理 API 调用的方式
这是来自的答案:
https://stackoverflow.com/a/6699772/727429
HttpClient client = new DefaultHttpClient();
client.getParams().setParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS, true);
关于java - android HttpResponse 总是在第二次调用时死掉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10603395/
我正在尝试将 sed 脚本迁移到 Perl 单行脚本,因为 Perl 支持非贪婪正则表达式。我接受了 Non greedy (reluctant) regex matching in sed? 的建议
我正在使用动态多级哈希,从中读取数据但也写入数据。 对我来说一个常见的陷阱是访问不存在的键(错别字、数据库修订等)。我得到 undef s 传播到其他部分并导致问题。我要die每当我尝试读取一个不存在
我希望我的脚本 perl 在生成警告时死掉,包括由使用的包生成的警告。 例如,这应该死: use strict; use warnings; use Statistics::Descriptive;
我有一个内存密集型 celery 任务,我希望它在大部分时间都处于关闭状态的昂贵 AWS 服务器中运行。 celery 节拍将每天安排一次任务,但也可以通过网络应用程序(== django)手动安排。
我是一名优秀的程序员,十分优秀!