我们的Android应用程序已使用Android捆绑的HttpClient多年。我们已经开发了大量代码来操纵与我们的服务器产品的交互。每次调用execute(post)时,HttpClient与服务器的交互都是这样的:
我们遇到了a problem with the HTTP library that ships with Android on several devices。我们尝试move to Apache 4.3 in the Android app,但拦截器行为是不同的。传统上,请求拦截器会触发两次:在步骤1和步骤3.响应拦截器也将触发两次:在步骤2和步骤4.我们只需要它们用于步骤2和步骤3,但很容易获得拦截器在步骤1和4的早期退出。由于移动到HttpClient 4.3,请求拦截器只在第1步触发,当时我们不需要它。
是否有可以恢复旧行为的配置选项?我们还尝试在我们自己的HttpClient 4.2副本中进行链接,但这种情况也不顺利。
谢谢!
答案 0 :(得分:2)
请求执行管道完全重新设计4.3主要是为透明响应缓存和内容解压缩提供更好的支持。从4.3请求身份验证的请求不再被重置,重新评估并从头开始重新连接。无法使用新的执行管道恢复旧行为。然而,可以使用(或者更确切地说是滥用)自定义AuthenticationStrategy
以便在认证握手期间拦截请求执行。