NSURLErrorCancelled

從蘋果公司的文檔:

NSURLErrorCancelled (-999)

"當(dāng)異步加載取消返回。當(dāng)它執(zhí)行取消操作上加載資源時(shí),Web 工具包框架委托將收到此錯(cuò)誤。請(qǐng)注意,NSURLConnection 或 NSURLDownload 委托不會(huì)收到此錯(cuò)誤如果取消下載。"

所以,最有可能為這種情況發(fā)生的情況為您加載請(qǐng)求,然后另一個(gè) (或相同),第一完成之前。這可能發(fā)生。例如,如果調(diào)用loadRequest(或loadHTMLString) 這樣的方法在viewDidAppear:可以調(diào)用多次。這也據(jù)報(bào)發(fā)生如果你快速點(diǎn)擊 2 鏈接在UIWebView。

所以,一般的建議是審查如何以及在何處你調(diào)用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]);

}

如果您檢查輸出,您應(yīng)該看到更清楚發(fā)生了什么事。如果您粘貼輸出,我們可以試著進(jìn)一步幫助你的




今天在調(diào)試一個(gè)加載UIWebView頁面的問題,發(fā)現(xiàn)無法加載,瀏覽器里能正常打開,錯(cuò)誤信息為

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

原因在于進(jìn)行url encode的NSString中含有未轉(zhuǎn)義字符。

未轉(zhuǎn)義字符有很多,空格、豎線、百分號(hào)、中文字等算作未轉(zhuǎn)義字符,轉(zhuǎn)義后會(huì)成為 % 之類的字符。

如果確定url中均為未轉(zhuǎn)義的字符,則可以用如下方式簡便的方式進(jìn)行url encode

NSString*encodedString=[siteUrlstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSURL*weburl=[NSURLURLWithString:encodedString];

像我的這種比較復(fù)雜的url,后面跟上rsa簽名的情況,用上面的一種方法會(huì)將rsa簽名中的%同樣進(jìn)行轉(zhuǎn)義一遍。

所以這里就需要找出其中可能會(huì)包含的未轉(zhuǎn)義字符進(jìn)行單獨(dú)的轉(zhuǎn)義,替換。

比如我就是將所有的空格替換為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;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • iOS開發(fā)系列--網(wǎng)絡(luò)開發(fā) 概覽 大部分應(yīng)用程序都或多或少會(huì)牽扯到網(wǎng)絡(luò)開發(fā),例如說新浪微博、微信等,這些應(yīng)用本身可...
    lichengjin閱讀 4,035評(píng)論 2 7
  • 一、簡介 近兩年隨著HTML5的迅速發(fā)展與日趨成熟,越來越多的移動(dòng)開發(fā)者選擇使用HTML5來進(jìn)行混合開發(fā),不僅節(jié)約...
    RainyGY閱讀 2,003評(píng)論 1 12
  • 一、WebView WebView就是一個(gè)內(nèi)嵌瀏覽器控件,在iOS中主要有兩種WebView:UIWebView和...
    iOS祎閱讀 1,239評(píng)論 0 2
  • 一、簡介 近兩年隨著HTML5的迅速發(fā)展與日趨成熟,越來越多的移動(dòng)開發(fā)者選擇使用HTML5來進(jìn)行混合開發(fā),不...
    寶寶teacher閱讀 2,448評(píng)論 3 15
  • http://www.cnblogs.com/mddblog/p/5281748.html 一、整體介紹 UIWe...
    F麥子閱讀 1,328評(píng)論 0 2

友情鏈接更多精彩內(nèi)容