NSURLSession+SynchronousTask is an NSURLSession category which brings NSURLConnection-like (remember sendSynchronousRequest:returningResponse:error:?) synchronous tasks to NSURLSession.
Internally the category uses GCD to wait for the tasks to finish.
CocoaPods is the recommended method of installing NSURLSession-SynchronousTask. Simply add the following line to your Podfile:
pod 'NSURLSession-SynchronousTask'NSURL *url = ...
NSError *error = nil;
NSURLResponse *response = nil;
NSData *data = [[NSURLSession sharedSession] sendSynchronousDataTaskWithURL:url returningResponse:&response error:&error];
...
NSURL *url = ...
NSError *error = nil;
NSURLResponse *response = nil;
NSURL *fileURL = [[NSURLSession sharedSession] sendSynchronousDownloadTaskWithURL:url returningResponse:&response error:&error];
...
NSURLRequest *uploadRequest = ...
NSData *dataToBeUploaded = ...
NSError *error = nil;
NSURLResponse *response = nil;
NSData *data = [[NSURLSession sharedSession] sendSynchronousUploadTaskWithRequest:uploadRequest fromData:dataToBeUploaded returningResponse:&response error:&error];
...
Florian Schliep
NSURLSession+SynchronousTask is available under the MIT license. See the LICENSE.txt file for more info.