Tag: nsurlsession

用于iOS 8扩展的AFNetworking后台会话configuration

我目前正在开发一个iOS 8的应用程序扩展,并有这个最后一块的困难。 在我的应用程序的其余部分中,我使用了一个AFHTTPSessionManager子类,我像这样实例化: + (MYAPIClient *)sharedClient { static MYAPIClient *_sharedClient = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ _sharedClient = [[MYAPIClient alloc] initWithBaseURL:[NSURL URLWithString:kMYBaseURL]]; _sharedClient.requestSerializer = [[MYAPIRequestSerializer alloc] init]; _sharedClient.responseSerializer = [[MYAPIResponseSerializer alloc] init]; }); return _sharedClient; } 当我使用这个普通的API客户端时,只是发布一些文本forms的共享扩展工作得很好,它甚至有时对图像有效(通常会失败),但我知道我需要使用后台会话configuration。 所以我做了一个非常类似的API客户端,像这样的背景configuration设置: + (MYAPIClient *)sharedBackgroundClient { static MYAPIClient *_sharedClient = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ NSURLSessionConfiguration *sessionConfiguration […]

上传NSURLSesssion在共享ios8扩展时失效,错误为NSURLErrorDomain Code = -995

我尝试在iOS 8中使用共享扩展中的NSURLSession上传图像,但在调用后立即出现此错误 [task resume] Error Domain=NSURLErrorDomain Code=-995 "The operation couldn't be completed. (NSURLErrorDomain error -995.)" 这里是我的代码: NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:DEFAULT_SHARE_SESSION_ID]; NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:self.queue]; NSURLRequest *request = [self getMultipartUploadRequest:data url:url albumId:albumId]; // … saving file here to Documents folder NSURLSessionUploadTask *uploadTask = [session uploadTaskWithRequest:request fromFile:url1]; [uploadTask resume]; 我也有这个消息在控制台中: Attempted to create […]

NSURLSessionDataTask和NSURLSessionDownloadTask有什么不同?

在最新的苹果引入新的NSURLSession来取代NSURLConnection ,所以在这里有不同的任务,那么NSURLSessionDataTask和NSURLSessionDownloadTask什么NSURLSessionDownloadTask呢? 并在哪个场景使用NSURLSessionTask和NSURLSessionDownloadTask ?

用NSURLSession设置cookie

嗨,我正在开发一个Iphone应用程序,我想在服务器响应后设置cookie,并将其用于另一个请求。 我的networking请求看起来像。 NSURLSession *session = [NSURLSession sharedSession]; [[session dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { NSHTTPURLResponse *httpResp = (NSHTTPURLResponse*) response; NSLog(@"sttaus code %i", httpResp.statusCode); if (error) { [self.delegate signinWithError:error]; } else { [self.delegate signinWithJson:data]; } }] resume]; 但我不知道如何设置cookie。 我知道我必须使用NSHTTPCookieStorage但我不知道如何设置。 而且我也希望将这个cookie用于另一个请求。 有没有人知道这个? 需要帮忙。 谢谢。 看我以这种方式尝试 NSURLSession *session = [NSURLSession sharedSession]; [[session dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse […]

在快速HTTP请求不工作

我正在尝试了解如何在Swift中使用API​​。 作为一个很好的第一个testing,我想我会打iTunes的API,只是返回一些search结果。 我在操场上使用下面的代码。 我没有得到任何错误,但我的println不输出任何东西。 任何人都知道什么是错的? 谢谢! import UIKit import XCPlayground XCPSetExecutionShouldContinueIndefinitely() let url = NSURL(string: "https://itunes.apple.com/lookup?id=909253") let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in println(NSString(data: data, encoding: NSUTF8StringEncoding)) } task.resume()

奇怪的NSURLSessionDownloadTask行为通过蜂窝(不是wifi)

我使用远程通知任务启用了后台模式,当应用程序收到推送通知时,可以在后台下载一个小文件(100kb)。 我已经使用configuration下载会话 NSURLSessionConfiguration *backgroundConfiguration = [NSURLSessionConfiguration backgroundSessionConfiguration:sessionIdentifier]; [backgroundConfiguration setAllowsCellularAccess:YES]; self.backgroundSession = [NSURLSession sessionWithConfiguration:backgroundConfiguration delegate:self delegateQueue:[NSOperationQueue mainQueue]]; 并使用它来激活它 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[hostComponents URL]]; [request setAllowsCellularAccess:YES]; NSMutableData *bodyMutableData = [NSMutableData data]; [bodyMutableData appendData:[params dataUsingEncoding:NSUTF8StringEncoding]]; [request setHTTPMethod:@"POST"]; [request setHTTPBody:[bodyMutableData copy]]; _downloadTask = [self.backgroundSession downloadTaskWithRequest:request]; [self.downloadTask resume]; 现在一切工作正常,只有当我通过Wifi或通过蜂窝连接,但与iPhone连接到XCODO电缆,如果我断开iPhone,并通过蜂窝接收推送通知代码停止在[self.downloadTask恢复]; 没有调用URL的行。 处理这些操作的类是一个NSURLSessionDataDelegate,NSURLSessionDownloadDelegate,NSURLSessionTaskDelegate等实现: – (void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential […]

在IOS中使用Web服务时会发生NSURLSession内存泄漏

我正在构build一个使用Web服务的应用程序,并从该Web服务获取信息,我使用NSURLSession和NSURLSessionDataTask 。 我现在在内存testing阶段,我发现NSURLSession导致内存泄漏。 这不是所有的泄漏。 这是我可以适应的图片。 以下是我如何设置NSURLSession并从Web服务请求信息。 #pragma mark – Getter Methods – (NSURLSessionConfiguration *)sessionConfiguration { if (_sessionConfiguration == nil) { _sessionConfiguration = [NSURLSessionConfiguration ephemeralSessionConfiguration]; [_sessionConfiguration setHTTPAdditionalHeaders:@{@"Accept": @"application/json"}]; _sessionConfiguration.timeoutIntervalForRequest = 60.0; _sessionConfiguration.timeoutIntervalForResource = 120.0; _sessionConfiguration.HTTPMaximumConnectionsPerHost = 1; } return _sessionConfiguration; } – (NSURLSession *)session { if (_session == nil) { _session = [NSURLSession sessionWithConfiguration:self.sessionConfiguration delegate:self delegateQueue:[NSOperationQueue […]

使用NSURLSessionDownloadTask设置并发下载的数量

我正在使用新的NSURLSession API并允许用户下载文件。 我想尝试告诉我的NSURLSession有多less同时下载运行,但我没有看到办法做到这一点。 我想尽量避免自己pipe理下载任务,如果我能告诉系统有多less允许的话,会好得多 – 当我的应用程序没有运行时,排队后台下载会更好。 有没有办法做到这一点?

iOS – 本地保存图像的最佳实践 – NSCache vs保存在文档目录中

我正在开发一个类似于Instagram feed的应用程序(包含图片和一些标签的单元格的表格)。 对于从数据库中获得的所有数据,我使用的是数据任务(因为它不需要太多接收它们),但对于图像(我的url是通过数据请求获得的),我需要保存在本地以供将来使用(改善用户体验)。 我的逻辑如下:保存在NSCache或文档目录中,文件夹内的图像与他们下载的date(创build一次,并追加所有其他图像,如果需要)( 我删除每个文件夹是不是从最近的7天 ),然后对于TableView,只是从那里加载,所以tableview将滚动顺利,不会直接从其委托方法加载URL。 那么根据我的需要, NSCache或文档目录可以存放在哪里。 期待听到您的build议,谢谢!

NSURLSession didCompleteWithError:与NSError调用是零

情景是当应用程序正在进行上传的时候,将应用程序多次应用到后台和前台,didCompleteWithError:应用程序前台调用方法,错误参数为null。 概率是1/3。 我怎样才能找出错误的参数不给任何东西。