【发布时间】:2012-12-19 02:02:18
【问题描述】:
我正在与验证密码的服务器通信,并在无效密码时返回 401 错误,以及指定失败尝试次数的 json 正文。每次验证失败时,服务器都会增加该数字。
我面临的问题是,当 NSURLConnection 收到 401 响应时,它会启动涉及这些委托方法的身份验证机制:
连接:canAuthenticateAgainstProtectionSpace:
连接:didReceiveAuthenticationChallenge:
如果我在 canAuthenticate 方法中返回 NO,则会发出一个新的相同请求。这将导致服务器第二次增加失败的尝试次数(这显然是不希望的),我将收到 401 响应 (connection:didReceiveResponse:)
如果我在 canAuthenticate 方法中返回 YES,则调用 didReceiveAuthenticationChallenge 方法。如果我想停止第二个请求,我可以调用 [challenge.sender cancelAuthenticationChallenge:challenge]。但是如果我这样做,我不会得到 401 响应,而是一个错误。
我找不到捕获第一个 401 响应的方法。有什么办法吗?
【问题讨论】:
-
马里亚诺,你有没有想过如何解决这个问题?我现在面临同样的问题:(
标签: ios nsurlconnection nsurlconnectiondelegate