ios – NSURLErrorDomain代码-1002下载pdf

ios – NSURLErrorDomain代码-1002下载pdf,第1张

概述我正在尝试缓存一个网页,然后我可以使用UIWebView显示该网页. 我在另一个NSURLSessionDataTask的完成块内的for循环(尝试缓存6个网页)中有相关的NSURLSessionDataTask.当我跑步时,我不断收到此错误: Ayy下载错误,数据:<> 响应:(空) 错误:错误域= NSURLErrorDomain代码= -1002“ *** 作无法完成.(NSURLErrorDoma 我正在尝试缓存一个网页,然后我可以使用UIWebVIEw显示该网页.

我在另一个NSURLSessionDataTask的完成块内的for循环(尝试缓存6个网页)中有相关的NSURLSessionDataTask.当我跑步时,我不断收到此错误:

Ayy下载错误,数据:<>
响应:(空)
错误:错误域= NSURLErrorDomain代码= -1002“ *** 作无法完成.(NSURLErrorDomain错误-1002.)”UserInfo = 0xdd89d30 {NSUnderlyingError = 0xdd89ba0“ *** 作无法完成.(kcfErrorDomainCFNetwork错误-1002.) “}

这是我正在呼唤的片段

for (MAClass *class in [myDictResult objectForKey:@"classes"]) {     Nsstring *PRURL = [[[class assignments] objectAtIndex:[[class assignments] count]-1] assignmentname];     NSLog(@"PRURL is %@",PRURL);     NSURLSessionDataTask *progressReportTask = [defaultSession dataTaskWithURL:[NSURL URLWithString:PRURL] completionHandler:^(NSData *progressReportData,NSURLResponse *progressReportResponse,NSError *progressReportError) {         if ([progressReportData length] > 0 && progressReportError == nil) {              NSLog(@"got dat data");         } else NSLog(@"Error with getting data data:%@\nresponse:%@\nerror:%@",progressReportData,progressReportResponse,progressReportError);      }];      [progressReportTask resume];      NSLog(@"After request");}

我确保该URL有效,看到这是其他人得到相同错误的原因(我的网址就像https://mistar.oakland.k12.mi.us/novi/StudentPortal/Home/PrintProgressReport / 20152193 ^ HS4,当我将它们放入浏览器时有效)

我究竟做错了什么?

解决方法 -1002是NSURLErrorUnsupportedURL / kcfURLErrorUnsupportedURL.将来,您可以在Xcode文档中搜索NSURLErrorDomain,也可以使用快速打开(shift命令O)来浏览NSURLErrorDomain定义的标题.这两种技术都会让你发现NSURLErrorDomain中的-1002是NSURLErrorUnsupportedURL.

出现此错误的原因是您的网址包含一些必须进行转义百分比的字符.并且Web浏览器会经常为您执行必要的百分比转义,这就是它在那里工作的原因.

您可以使用stringByAddingPercentEscapesUsingEnCoding将URL转换为可接受的格式:

Nsstring *urlString = @"https://mistar.oakland.k12.mi.us/novi/StudentPortal/Home/PrintProgressReport/20152193^HS4";NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEnCoding:NSUTF8StringEnCoding]];NSURLSessionTask *task = [defaultSession dataTaskWithURL:url completionHandler:^(NSData *data,NSURLResponse *response,NSError *error) {    ...}];

顺便说一句,在将Web浏览器结果与应用程序进行协调时,Charles非常有用.从浏览器运行请求,然后再从应用程序运行请求,并在Charles中比较结果.如果你对这些进行了比较,你会发现你需要百分之百地逃避URL.

顺便说一下,您还可以参考RFC 3986第2节,了解URL中哪些字符必须被转义百分比的技术说明.

总结

以上是内存溢出为你收集整理的ios – NSURLErrorDomain代码-1002下载pdf全部内容,希望文章能够帮你解决ios – NSURLErrorDomain代码-1002下载pdf所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1098538.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存