您好,我在应用程序中使用NSURLSessionDataTask进行后台http调用,如下所示
NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {但是,当我尝试dataTaskWithRequest:request它不支持这两个服务器时,我有两个服务器说https://demo.demosite.com和http://214.43.45.35/。我读到here,dataTaskWithRequest:request不支持后台?
当应用程序未运行时,在后台支持NSURLSessionUploadTask。有没有人可以分享NSURLSessionUploadTask回调的例子?
发布于 2016-07-26 13:07:52
下面是示例:
NSData* data = [Your_json_string dataUsingEncoding:NSUTF8StringEncoding];
NSURLSession *session = [NSURLSession sharedSession];
NSURL *url = [NSURL URLWithString:@"your_url"];
NSMutableURLRequest *request =
[[NSMutableURLRequest alloc] initWithURL:url];
[request setHTTPMethod:@"POST"];
NSURLSessionUploadTask *uploadTask = [session uploadTaskWithRequest:request fromData:data completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
//Perform operations on your response here
}];
//Don't forget this line ever
[uploadTask resume];发布于 2016-07-26 13:40:56
您必须创建backgroundSession并传递唯一标识符。
NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:identifier];
sessionConfiguration.HTTPMaximumConnectionsPerHost = 10;
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfiguration];
NSURLSessionUploadTask *uploadDataTask = [session uploadTaskWithRequest:multipartRequest fromFile:tmpFileUrl completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
}];希望它能起作用。如果你有任何问题,请提出来。
https://stackoverflow.com/questions/38581240
复制相似问题