问题标签 [nsurlconnectiondelegate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 为 NSURLConnectionDelegate 协议实现进度指示器
我正在尝试在尝试上传和下载文件时做一些进度指示。
一直在阅读,看起来这是我需要使用的方法。
我想详细了解该函数的工作原理(即何时调用等),但似乎找不到参考文档。我访问了这个 URL,但它没有说明该特定功能。
我在哪里可以阅读更多关于它的信息?
谢谢你,
三通
iphone - 在 iOS 5 的主线程中调用的 NSURLConnection 委托
我正在升级我的 iPhone 应用程序,它具有使用 Http 通信的内容下载功能。该事件曾经发生在主线程中,而 NSURLConnectionDelegate 函数曾经在 iOS 4 上的另一个线程中调用。但是当我在 iOS 5 上测试相同的代码时,我发现在主线程中调用了 NSURLConnectionDelegate 函数。
我没有使用NSURLConnection sendSynchronousRequest:,而是initWithRequest:。
Apple 是否在 iOS 5 中升级了这部分 NSURLConnection?
iphone - 单独线程上的异步 NSURLConnection 无法调用委托方法
我在一个单独的线程上运行 NSURLConnection (我知道它是异步的并且在主线程上运行时可以工作),但即使我将父线程作为委托传递,它也不会进行委托调用。有谁知道如何做到这一点?
代码:
编辑*
我需要在单独的线程上运行 NSURLConnection 的原因是因为我正在我的 iPhone 应用程序中下载一些东西,并且当用户锁定屏幕时下载会取消(如果用户只是按下主页按钮并且应用程序进入后台,它会继续正常)。我知道这是由于我在主线程上异步运行连接而不是单独运行连接。
在启动 NSURLConnection 时,我也尝试过这段代码(不在单独的线程中):
但是关于在屏幕锁定时取消下载,我有同样的问题。
*更新
为了在下面添加 Thomas 的答案(请注意,关于退出线程,James Webster 的答案也是正确的)Apple 文档解释说:“暂停状态 - 应用程序在后台但未执行代码。系统将应用程序移动到此状态自动并且在这样做之前不会通知他们。暂停时,应用程序保留在内存中但不执行任何代码。
由于当用户锁定屏幕时,应用程序会进入后台状态,而不是立即进入挂起状态,所有执行都会停止并终止任何下载,并且不会发出即将发生的警告......可能会有一条通知告诉我用户已锁定屏幕但我还没有找到。
因此,当应用程序进入后台时,我会暂停(保存某些信息并取消 NSURLConnection)所有下载,并在它再次激活时使用 HTTP Range 标头恢复它。这是一种可行的解决方法,但并不理想,因为下载不是在后台进行的,这会对用户体验产生负面影响……真可惜。
ios - SSErrorDomain 错误代码 109。从 Amazon S3 下载 NewsStand
在 iOS 中从 Amazon S3 下载文件时。间歇性 NSURLConnectionDownloadDelegate 的方法 didFailWithError: 被调用,这就是我在记录收到的 NSError 对象时得到的
错误代码:109 错误域:SSErrorDomain 错误描述:“无法连接到 .s3.amazonaws.com”
搜索了所有 Apple 文档、StackOverflow 和其他网站,但没有找到任何相关内容。今天,我也使用我的开发者帐户向 Apple 提出了技术问题。
任何想法 ?
更新:
所以在查看了 HTTP 响应错误代码(403 Forbidden)之后,我明白了。这是因为来自 S3 的“RequestTimeTooSkewed”错误(请求时间与当前时间之间的差异太大。)。我通过将 iPad/Mac 的系统时间更改 1 小时来交叉检查它,这个错误现在立即出现,即使对于一个小 (200kb) 文件也是如此。
现在,正如许多博客中所建议的那样,我首先向 AWS 发出 HEAD 请求,如下所示以获取日期字符串而不传递系统日期
并将其设置为 NSMutableURLRequest 中的 Date 标头
我将此请求添加到我的问题以供下载
还是一样的错误!!!!现在比我上次的情况更疯狂。
任何人 ?
更新 2
通过将日期字符串中的“GMT”替换为“+0000”,我能够成功发出请求(即使我的 iPad 的系统时钟不正确)。
更新 3 仍然有一些请求因同样的错误而失败,这很奇怪,但我假设这是 NewsStand 框架搞砸的事情。
iphone - iOS4 实现 -[NSURLConnection sendAsynchronousRequest:queue:completionHandler:]?
如何-[NSURLConnection sendAsynchronousRequest:queue:completionHandler:]
为 iOS < 5 实现?
ios - iOS5 中的 NSURLConnection
我正在使用 NSURLConnection 访问网络服务。
我在 iOS 4.3 中得到了正确的响应,但是如果我在 iOS5 中运行相同的代码,我会得到 NULL 响应。
我需要对现有的 NSURLConnection 委托进行哪些更改才能成功工作。
我已经实现了 NSURLConnectionDataDelegate 和 NSURLConnectionDelegate。即使那样它也不起作用。
提前致谢。
ios - 如何对 NSURLConnection 委托进行单元测试?
如何对我的 NSURLConnection 委托进行单元测试?我创建了一个 ConnectionDelegate 类,它符合不同的协议,将来自网络的数据提供给不同的 ViewController。在我走得太远之前,我想开始编写我的单元测试。但我不知道如何在没有互联网连接的情况下将它们作为一个单元进行测试。我还想如何处理异步回调。
error-handling - NSURLConnection 没有调用 didFailWithError。
我正在尝试编写一些代码来检查数据源的 URL,然后用来自该 URL 的对象填充一个数组。它实际上运行良好,但如果 Web 连接或地址出现问题,我想用捆绑文件中的数据填充数组。我遇到的问题是该connection didFailWithError
方法永远不会被调用。我尝试传递一个简单的字符串,但它没有调用。我希望该应用程序仍然适用于使用 ipod touch 或处于飞行模式的人。
connection didReceiveResponse
工作没有问题。
这就是我正在使用的。
-(无效)连接:(NSURLConnection *)连接didFailWithError:(NSError *)错误{
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { listConnectFail = NO; NSLog(@"连接成功,从 API 填充"); }
我知道这可能是我没有看到的愚蠢的东西,但我可以使用帮助来查看我没有看到的东西
提前致谢!
ios - IOS。如何在 Grand Central Dispatch 的上下文中处理 URL 身份验证质询
我正在大量使用 Grand Central Dispatch。我现在需要向需要身份验证的服务器发出 URL 请求。iOS 方法NSURLConnection
是异步的,这使我将 GCD 用于异步任务变得复杂。据我了解,它NSURLConnection
确实支持同步模式,但这需要在请求 URL 中嵌入用户/密码,这是没有意义的,因为我不知道。我在这里有什么选择?
谢谢,
道格
ios - NSURLConnectionDelegate。如何取消身份验证质询?
我成功地使用了相当棒connection:didReceiveAuthenticationChallenge:
的 NSURLConnectionDelegate 委托方法。凉爽的。
我想正确支持让用户取消身份验证挑战。所以,我呈现给用户的 GUI 有一个取消按钮,问题是该按钮后面应该发生什么行为。
目前我这样做[[challenge sender] cancelAuthenticationChallenge:challenge]
并且我已经实现了 NSURLConnectionDelegate 方法connection:didCancelAuthenticationChallenge:
。在 Apple 文档中,我注意到这个回调的这个相当模棱两可的注释:
在 iOS 5.0 之前作为非正式协议的一部分提供。
嗯?实际触发的回调方法是connection:didFailWithError:
有人可以在这里阐明一下吗?