在做一个关于用户登录的的应用,涉及到多个用户切换,问题的表现是用第一个帐号登录没问题,之后几个帐号换这登,就不定时的会出现上一个用户的数据。
请求的情况是,每次的路径相同,传的header不同,包体为空。
第一天我怀疑传的header不对,打了很多日志,没有发现客户端有问题。
第二天我怀疑服务器数据给我的不对,就跟服务器对数据。在服务器收到的数据中只有正常的,当客户端得到错误信息的时候,服务器没有收到我发送的网络请求。
我保证,发送请求的代码客户端肯定加了。所以有可能用的这个网络请求有问题,时而正常发送时而不发用上一个的。本来我用的是volley框架,后来换成了android 自带的httpclient,在后来换成了任何包装都没有java原装urlconnection,发现问题依旧。
现在怀疑是这些请求都做了缓存,查了很多网络请求header和缓存相关的参数,进行设置,问题还是没解决。
为什么有的请求会重新请求而有的请求要使用缓存呢?请求路径相同,没有传参,所以数据就还是上一个的,java本身提供的http层的接口判断一个请求是不是新的看的就是路径和参数,如果相同,就不会在发送请求了。
所以之后,我在包体了也传了参数,强迫每次请求都是一个新请求。
本文描述了一个用户登录应用中遇到的问题:在多个用户间切换登录时,偶尔出现上一个用户的数据。作者通过排除客户端和服务器端的问题,怀疑是网络请求缓存导致,并尝试多种HTTP客户端及调整缓存策略仍未解决。

2497

被折叠的 条评论
为什么被折叠?



