在IOS应用程序和缓存中使用Web服务

问题描述:

我正在研究使用Web服务进行身份验证的应用程序。一旦通过验证,我会通过soap调用请求其他几个方法来检索这些数据。除了第二次登录之外,所有这些工作都很好。在IOS应用程序和缓存中使用Web服务

第一次运行应用程序时,我可以通过从我的文本字段发送用户/密码进行登录。当退出应用程序时,我再次加载登录屏幕。这次我输入了相同的用户名,但输入了正确的密码,输入了一个假密码,我仍然可以登录。我创建了一系列NSLog语句来跟踪发生了什么,我确实看到了新的用户/传递变量被发送,但它的连接已被缓存,并且无论我在密码字段中发送的内容如何这次。

是否存在应用程序沙箱中可以删除的tmp文件,以查看这是否可以解决问题?我认为事情正在被缓存,在这一点上我开始看服务器端和/或本地tmp文件。

我也试着发送改变我的肥皂头包括no-cache指令,但我需要做更多的研究。

在此先感谢!

+1

也许认证是基于cookie的?如果适用,注销时您必须使cookie无效(您或远程服务 - 通常是后者)。 – Till 2011-12-19 18:47:47

+0

@Till我没有编写后端方法。我试图找出现在。一旦我发现我会添加到这个评论。 – tg2007 2011-12-19 18:53:23

+0

它看起来确实在我的身边,因为我在Web服务器日志文件中看到一个http 401响应,但是我在日志或应用程序中看到了不同的响应。 401是一个错误,并在成功我收到200.对我来说,这看起来像NSURLRequest仍然有旧数据,并使用此而不是我的新请求。我试图找出如何释放/销毁此连接。 – tg2007 2011-12-19 22:14:50

原来,因为我使用HTTP身份验证方法来传递肥皂调用,所以我的身份验证被缓存。无论我在NSURLMutableRequest中发送的内容是否因缓存而被忽略。我遇到了解决这个问题的文章。

感谢约翰内斯Fahrenkrug在这里写这篇文章: http://www.springenwerk.com/2008/11/i-am-currently-building-iphone.html