Tag: cnetworking

使用NSURLSession下载时获取文件path

我想在下载时播放音乐,所以我用本地文件播放音乐,如何在下载NSURLSession的同时在tmp目录中获取文件path。 URLSession:downloadTask:didFinishDownloadingToURL方法:只在文件下载时调用,那我该怎么办

如何使用NSURLCache在脱机时返回caching的API响应(iOS应用程序)

我希望有人能够对我一直在研究的几件事情有所了解,但是没有取得太多的进展。 我想利用NSURLCache来返回我在iOS应用程序中进行的API调用的caching响应。 当设备在线时,如果足够近,我想返回caching的响应,否则从远程取回。 当设备离线时,我想立即返回caching的响应(如果有的话),而不pipe它的年龄。 我正在使用AFNetworking 。 我正在做的API调用是由我控制的服务器。 协议是HTTPS。 Cache-Control响应头当前是"max-age=0, public" 。 我目前不设置caching相关的请求头(我应该?)。 我将请求的caching策略设置为脱机时的NSURLRequestUseProtocolCachePolicy并且在线时使用默认的NSURLRequestUseProtocolCachePolicy 。 我可以在磁盘上的默认Cache.db看到请求和响应。 但是,当我脱机时,所有的请求都失败(没有caching的响应(尽pipe看起来已被caching)正被使用/返回。 每个http://nshipster.com/nsurlcache/我初始化didFinishLaunchingWithOptions的sharedURLCache ,并将AFNetworking setCacheResponse块设置为这样的: NSMutableDictionary * mutableUserInfo = [[cachedResponse userInfo] mutableCopy]; NSMutableData * mutableData = [[cachedResponse data] mutableCopy]; NSURLCacheStoragePolicy storagePolicy = NSURLCacheStorageAllowed; return [[NSCachedURLResponse alloc] initWithResponse:[cachedResponse response] data:mutableData userInfo:mutableUserInfo storagePolicy:storagePolicy]; 我已经阅读了关于这个主题的这些和其他post: http://petersteinberger.com/blog/2012/nsurlcache-uses-a-disk-cache-as-of-ios5/ http://blackpixel.com/blog/2012/05/caching-and-nsurlconnection.html 我想知道是否有人在使用标准的NSURLCache之前成功地实现了这个function(对NSURLCache成功案例也很感兴趣,但是Peter S.说,​​支持iOS5磁盘caching,因此不再需要SDURLCache ,也就是说,我想使用默认的内置caching)。 提前致谢!

AFNetworking 3.0 AFHTTPSessionManager使用NSOperation

我有一段时间卡住了,我需要帮助。 所以在AFNetworking 2.0我们有AFHTTPRequestOperation所以我可以很容易地使用NSOperationQueue并有一些依赖。 所以现在我们只有AFHTTPSessionManager和NSURLSession没有NSOperation子类。 我有类APIClient子类。 我正在使用该类作为sharedClient单例。 我已经覆盖GET和POST,所以例如GET看起来这样: – (NSURLSessionDataTask *)GET:(NSString *)URLString parameters:(NSDictionary *)parameters success:(void (^)(NSURLSessionDataTask *task, id responseObject))success failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure { NSURLSessionDataTask *task = [super GET:URLString parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject) { success(task, responseObject); } failure:^(NSURLSessionDataTask *task, NSError *error) { failure(task, [Response createErrorWithAFNetworkingError:error]); }]; return task; } 你有任何想法如何实现这种方式(如果可能的话)包装为NSOperation ? 所以我想要做的 – 我想能够并行运行两个networking调用,然后有另一个方法调用,这依赖于前两个调用的第二个networking调用。 […]