我试图通过UIWebView访问一个安全的网站.当我通过safari访问它时,我得到了一个身份验证挑战,但同样的情况并没有出现在应用程序的UIWebView中.我该如何让它出现?
任何指针,示例代码或链接都将非常有用.非常感谢.
当你事先知道请求需要它时,我已经看到许多 问题(并回答)如何提供凭证.
当我加载请求身份验证质询的站点时(使用HTTP 401响应),我UIWebViewDelegate只收到以下回调:webView:shouldStartLoadWithRequest:navigationType:有时webViewDidStartLoad:(webViewDidStartLoad:如果我直接导航到该站点,似乎会被调用,如果我',它似乎不会被调用m重定向那里).
通过覆盖-[NSObject respondsToSelector:],UIWebViewDelegate接收一些调用uiWebView:resource:canAuthenticateAgainstProtectionSpace:forDataSource:和uiWebView:resource:didReceiveAuthenticationChallenge:fromDataSource:,这可能是有用的,但当然这些是私有API,可能会让我的应用程序被拒绝.
我用嵌入式UIWebViews 测试了一些不同的主流应用程序.到目前为止,只有Chrome正确处理这些身份验证挑战.我甚至已经设置了自己的服务器并验证了Chrome只有POST一次.Twitter和Tweetbot失败只是永远显示加载屏幕,就像我的.
除了使用第二个推测之外,还有另一种(可能是非常hacky)方法来检测这些身份验证挑战NSURLConnection吗?如果我提出POST请求,那将POST是一切,这是不好的.