在iOS webview中可以出现NSURLErrorCannotFindHost的场景

时间:2017-09-11 16:39:45

标签: ios dns uiwebview

我是一名嵌入式程序员,但现在正在尝试分析iOS日志,以解决webview无法加载URL的问题。从日志中,我看到以下

404230 (_:didStartProvisionalNavigation:)::Entry 
404230 (_:didStartProvisionalNavigation:)::Exit 
404250 (_:didFailProvisionalNavigation:withError:)::Entry
404250 (_:didFailProvisionalNavigation:withError:)::server with the specified hostname could not be found
404250 (_:didFailProvisionalNavigation:withError:)::Exit

观察到didFailProvisionalNavigation:withErrordidStartProvisionalNavigation之后的20毫秒内被调用,错误为NSURLErrorCannotFindHost。

以下是我的问题:

  1. 根据didStartProvisionalNavigation和之间的时间安排 didFailProvisionalNavigation:withError,我开始怀疑是否 webview实际上试图解析域名。这是时机 正常,什么是默认的DNS查找超时?
  2. 在其他情况下会发生此错误吗?

1 个答案:

答案 0 :(得分:0)

当iOS webview尝试解析域名时,DNS服务器返回Standard query response, Refused(在wireshark中检查过),这就是webview报告错误NSURLErrorCannotFindHost的原因。

显然,因为它是DNS错误,所以它在_:didFailProvisionalNavigation:withError之后几毫秒调用了回调_:didStartProvisionalNavigation。如果超时,可能需要更长时间。