Intereting Posts
Радиальный градиентный фон программно в UIViewController iOS7 Скрыть проблему смещения панели навигации Статическая библиотека с зависимостями CocoaPods Загрузите PDF в UIWebView и получите ошибку DiskImageCache: Не удалось разрешить абсолютный путь старого каталога сохранение uilabel и uiimageview как uiimage Как выработать ссылку itms-apps для приложения, перед отправкой? Как отображать файлы сообщений Microsoft Outlook в iOS CoreBluetooth: Как менеджер периферийных устройств знает, что центральный получил указание? Приложение Xcode не будет загружать просмотр иногда iOS 4.3 SDK, развернутый на iPhone 3.1.3 IOS печатает PDF с минимальными полями Методы интроспекции класса XCTestCase не работают из кода во время работы из командной строки LLDB Есть ли способ вернуть метод переопределения подкласса при вызове защитного блока суперкласса Как загрузить UINavigationController из XIB или раскадровки Верхний бар – ссылка UIImage

Странная проблема в didReceiveData из-за basicAuthentication

Я столкнулся с проблемой базовой аутентификации, для которой я не могу понять, почему эта проблема существует. В базовой аутентификации я получаю код ответа 200, т. Е. Аутентификация успешна, но иногда я не получаю соответствующие данные в приложении iOS. Если я вставляю URL-адрес запроса в браузере (даже в браузере Safari iPhone также), я всегда получаю ответ. Но почему я не всегда получаю ответ в приложении iOS.

Я рассмотрел многие другие проблемы в google и переполнении стека, например link1 , но не повезло.

Мой код выглядит следующим образом:

//in implemetation file -(void)basicAuthentication{ . . NSURL *url = [NSURL URLWithString:authenticationUrl]; NSMutableString *loginString = (NSMutableString*)[@"" stringByAppendingFormat:@"%@:%@", @"username",@"password"]; NSString *authHeader = [@"Basic " stringByAppendingFormat:@"%@", loginString]; NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; [request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData]; [request setURL:url]; [request setHTTPMethod:@"GET"]; [request addValue:authHeader forHTTPHeaderField:@"Authorization"]; NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; myData = [[NSMutableData data] retain]; } //Delegate method called when the connection receives data /* * Callback, called when ever there is more response data read */ -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { [myData appendData:data]; } //in .h file @interface TestConnectionManager : NSObject <UIAlertViewDelegate,NSURLConnectionDelegate>{ id <TestConnectionManagerDelegate>delegate; NSMutableData *myData; . . . } 

Я столкнулся с подобной проблемой, и у меня есть временное решение, которое я собираюсь предложить. Но я не уверен, насколько это будет полезно для вашего дела.

Я поместил лог-сообщения данных, полученных внутри метода didReceiveData . Если вы не можете поместить полученные данные, вы можете взять журнал длины данных.

 -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { NSLog(@"data:%d",[data length]); [myData appendData:data]; NSLog(@"myData:%d",[myData length]); }