Аутентификация заголовка Http при пост-запросе AFNetworking
Я пытаюсь создать multipartFormRequestWithMethod
используя AFHttpClient AFNetworking. Он должен проходить проверку подлинности с помощью службы ASP.NET REST с использованием заголовка авторизации Http. Поэтому я передаю имя пользователя и пароль в заголовок авторизации Http, используя setAuthorizationHeaderWithUsername:password:
, В теле запроса я передаю большой файл, несколько МБ. Если аутентификация по заголовку не удалась, я хочу, чтобы запрос получил блокировку и перешел в состояние сбоя до завершения отправки файла. Должно быть что-то, что мешает отправке базы данных в случае сбоя аутентификации, но я не могу понять, что. В текущей ситуации AFHttpRequestOperation начинает отправлять файл и уведомляет об ошибке только в конце отправки файла. Это код:
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://v-moxdevelop/MOX.UploadDBService/UploadDB/"]];
NSString *psw = @"psw";
NSString *userName = @"username";
[httpClient setAuthorizationHeaderWithUsername:selectedLoginItem.user password:@"psw"];
NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path: [NSString stringWithFormat:@"Upload/%@/%@/%@", UDID, [selectedLoginItem.firm stringByReplacingOccurrencesOfString:@"." withString:@""], [selectedLoginItem.user stringByReplacingOccurrencesOfString:@"." withString:@""]] parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
[formData appendPartWithFileData:fileData name:zipFilePath fileName:[zipFilePath lastPathComponent] mimeType:@"application/zip"];
}];
[request setTimeoutInterval:INT32_MAX];
[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
__weak typeof(self) weakSelf = self;
[operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
}];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *locOperation, id responseObject) {
}failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
}];
[httpClient enqueueHTTPRequestOperation:operation];