NSURLErrorCancelled

从苹果公司的文档:

NSURLErrorCancelled (-999)

"当异步加载取消返回。当它执行取消操作上加载资源时,Web 工具包框架委托将收到此错误。请注意,NSURLConnection 或 NSURLDownload 委托不会收到此错误如果取消下载。"

所以,最有可能为这种情况发生的情况为您加载请求,然后另一个 (或相同),第一完成之前。这可能发生。例如,如果调用loadRequest(或loadHTMLString) 这样的方法在viewDidAppear:可以调用多次。这也据报发生如果你快速点击 2 链接在UIWebView。

所以,一般的建议是审查如何以及在何处你调用loadRequest(或loadHTMLString),并可能提供一些代码。

为排除此故障,本人建议将以下痕迹添加到您的 web 视图委托:

- (void)webViewDidStartLoad:(UIWebView *)webView {

NSLog(@"Starting to download request: %@", [webView.request.URL absoluteString]);

}

- (void)webViewDidFinishLoad:(UIWebView *)webView {

NSLog(@"Finished downloading request: %@", [webView.request.URL absoluteString]);

}

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {

if ([error code] == NSURLErrorCancelled)

NSLog(@"Canceled request: %@", [webView.request.URL absoluteString]);

}

如果您检查输出,您应该看到更清楚发生了什么事。如果您粘贴输出,我们可以试着进一步帮助你的




今天在调试一个加载UIWebView页面的问题,发现无法加载,浏览器里能正常打开,错误信息为

Domain=WebKitErrorDomain Code=101 “The operation couldn’t be completed. (WebKitErrorDomain error 101.)”

原因在于进行url encode的NSString中含有未转义字符。

未转义字符有很多,空格、竖线、百分号、中文字等算作未转义字符,转义后会成为 % 之类的字符。

如果确定url中均为未转义的字符,则可以用如下方式简便的方式进行url encode

NSString*encodedString=[siteUrlstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSURL*weburl=[NSURLURLWithString:encodedString];

像我的这种比较复杂的url,后面跟上rsa签名的情况,用上面的一种方法会将rsa签名中的%同样进行转义一遍。

所以这里就需要找出其中可能会包含的未转义字符进行单独的转义,替换。

比如我就是将所有的空格替换为dash(-)。

// convert blank, etc. charactor to UTF8

NSMutableString*uglyMutableString=[[NSMutableStringalloc]initWithString:uglyString];

NSRangerange=[uglyMutableStringrangeOfString:@" "];

while(!(range.location==NSNotFound&&range.length==0)){

[uglyMutableStringreplaceCharactersInRange:rangewithString:@"-"];

range=[uglyMutableStringrangeOfString:@" "];

}

NSString*cleanString=[NSStringstringWithString:uglyMutableString];

returncleanString;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS开发系列--网络开发 概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可...
    lichengjin阅读 3,721评论 2 7
  • 一、简介 近两年随着HTML5的迅速发展与日趋成熟,越来越多的移动开发者选择使用HTML5来进行混合开发,不仅节约...
    RainyGY阅读 1,904评论 1 12
  • 一、WebView WebView就是一个内嵌浏览器控件,在iOS中主要有两种WebView:UIWebView和...
    iOS祎阅读 1,114评论 0 2
  • 一、简介 近两年随着HTML5的迅速发展与日趋成熟,越来越多的移动开发者选择使用HTML5来进行混合开发,不...
    宝宝teacher阅读 2,367评论 3 15
  • http://www.cnblogs.com/mddblog/p/5281748.html 一、整体介绍 UIWe...
    F麦子阅读 1,262评论 0 2