Аутентификация заголовка 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];

0 ответов

Другие вопросы по тегам