【发布时间】:2013-04-26 14:58:38
【问题描述】:
我看到manyquestions 在事先知道请求需要凭据时询问(并回答)如何提供凭据。
当我加载请求身份验证质询的站点时(以 HTTP 401 响应),我的 UIWebViewDelegate 仅收到以下回调:webView:shouldStartLoadWithRequest:navigationType: 有时 webViewDidStartLoad:(如果我导航,似乎会调用 webViewDidStartLoad:直接到该站点,如果我被重定向到那里,它似乎不会被调用)。
通过覆盖 -[NSObject respondsToSelector:],UIWebViewDelegate 会收到一些对 uiWebView:resource:canAuthenticateAgainstProtectionSpace:forDataSource: 和 uiWebView:resource:didReceiveAuthenticationChallenge:fromDataSource: 的调用,这可能很有用,但当然这些是私有 API,可能会导致我的应用被拒绝。
我已经测试了几个不同的主流应用程序嵌入了UIWebViews。到目前为止,只有 Chrome 能够正确处理这些身份验证挑战。我什至设置了自己的服务器并验证了 Chrome 仅POSTs 一次。 Twitter 和 Tweetbot 失败只是永远显示加载屏幕,就像我的一样。
除了使用第二个推测性NSURLConnection 之外,是否还有另一种(可能非常老套)方法来检测这些身份验证挑战?如果我提出一个POST 请求,那将加倍POST 一切,这很糟糕。
I've added a radar to request an enhancement to UIWebView for this。请复制它。
【问题讨论】:
-
感谢您提出雷达请求 - 我上当了!
标签: ios uiwebview http-authentication uiwebviewdelegate