NSURLSessionUploadTask пример в target-c?
Привет я пользуюсь NSURLSessionDataTask
в приложении для фонового вызова http следующим образом,
NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
Но у меня есть 2 сервера, которые говорят https://demo.demosite.com/ и http://214.43.45.35/ когда я пытался dataTaskWithRequest: запрос не поддерживает оба сервера. Я читал здесь, что dataTaskWithRequest: запрос не поддержка в фоновом режиме?
NSURLSessionUploadTask
поддержка в фоновом режиме, когда приложение не работает. Кто-нибудь может поделиться NSURLSessionUploadTask
пример обратного вызова?
2 ответа
Решение
Ниже приведен пример:
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];
Вы должны создать 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) {
}];
Надеюсь, это сработает. И если у вас есть какие-либо вопросы, пожалуйста, спросите.