AFNetworking Ожидаемая ошибка типа содержимого

Я получаю строку json в блоке отказа

NSURL *url = [[NSURL alloc] initWithString:@"http://www.vinipost.com/Services/Update/UpdateService.asmx/GetPropSubType?"]; NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url]; [AFJSONRequestOperation addAcceptableContentTypes:[NSSet setWithObject:@"text/html"]]; AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { NSLog(@"%@", JSON); } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) { NSLog(@"Request Failed with Error: %@, %@", error, error.userInfo); }]; [operation start]; 

Вывод:

 Request Failed with Error: Error Domain=AFNetworkingErrorDomain Code=-1016 "Expected content type {( "text/json", "text/javascript", "application/json", "text/html" )}, got text/plain" UserInfo=0x71521a0 {NSLocalizedRecoverySuggestion=[{"PropTypId":1,"PropCatId":1,"PropTyp":"Flat/ Condo"}.......** 

3 Solutions collect form web for “AFNetworking Ожидаемая ошибка типа содержимого”

Ошибка ясна: веб-служба возвращает неправильный тип содержимого. Тип контента должен быть одним из следующих:

"text / json", "text / javascript", "application / json", "text / html"

Но он возвращается

текст / обычный

Более того, если вы посмотрите на ответ http, он возвращает HTML TAGS внутри него, поэтому AFNetworking не может анализировать.

Если эта страница:

 http://www.vinipost.com/Services/Update/UpdateService.asmx/GetPropSubType? 

находится под вашим контролем, исправляет поведение, удаляя html-теги и изменяя тип содержимого

Вы должны добавить эту строку перед операцией

 [AFJSONRequestOperation addAcceptableContentTypes: [NSSet setWithObject:@"text/plain"]]; 

В AFNetworking вам необходимо создать NSURLRequest с помощью AFHTTPClient (сначала вам нужно создать AFHTTPClient и установить некоторые свойства для этого объекта), как показано ниже

AFHTTPClient *httpClient = [[httpClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://www.vinipost.com/"]];

 [httpClient registerHTTPOperationClass:[AFJSONRequestOperation class]]; [httpClient setDefaultHeader:@"Accept" value:@"application/json"]; httpClient.parameterEncoding = AFJSONParameterEncoding; 

теперь, если это зависит от GET / POST или любого другого запроса типа, вам нужно установить параметр, я считаю его POST-запросом, поэтому установите параметр dict и задайте все необходимые пары значений ключа правильно. Если вам не нужны параметры, вы можете передать параметры как nil

 NSURLRequest *request = [httpClient requestWithMethod:@"POST" path:@"Services/Update/UpdateService.asmx/GetPropSubType?" parameters:params]; AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { NSLog(@"%@",JSON); } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) { NSLog(@"Error MSG = %@",error); }]; [operation start]; 

надеюсь, что это сработает для вас 🙂

  • Каков более элегантный способ сериализации моих собственных объектов с массивами в Swift
  • Тип содержимого набора файлов JSON для приложения / json AFNetworking
  • Сохранить изображение из JSON в пользовательский класс iOS
  • Разбор массива JSON в быстром
  • Как создать классы классов (NSObject) автоматически из json-словаря?
  • Alamofire http json request block ui
  • NSURLConnection: текст JSON не начинался с массива или объекта, а опция позволяла не устанавливать фрагменты
  • Разбирайте данные JSON с помощью Asihttprequest и рамки Json для iphone
  • Parsing Plain JSON Array в Objective C
  • Как десериализовать json-объект и назначить NSDictionary в iOS
  • Установите NSDictionary в HTTPBody и отправьте с помощью метода POST
  • Interesting Posts

    Изменение цвета текста с помощью Swift

    Mac Dock, как увеличение для iPad

    Как получить аудио-элементы управления на экране блокировки / центра управления с помощью AVAudioPlayer в Swift

    Как показать анимацию загрузки в представлении – IOS

    Использование необъявленного идентификатора UNWIND_ARM64_MODE_FRAME_OLD в plcrashreporter в Xcode 6.1

    Автоматическое использование AutoLayout для панели поиска и UITableView

    Как переключить представление выбора слов (изменение высоты) в пользовательской клавиатуре iOS?

    Как группировать ячейки с помощью UICollectionReusableView (с использованием JSON)

    Не может подкласс UIColor?

    Как я могу создать файл pem для push-уведомлений в iphone?

    setRegion несовместим между версиями iOS?

    Показывать клавиатуру Emoji программно в iOS 9.0

    «Вы уже авторизовались yourApp» при входе в систему с использованием FBSDK 4.7.1

    Загрузите пользовательский UIView с помощью XIB из представления View Controller с помощью IB

    Сообщение, отправленное на освобожденный экземпляр с помощью ARC, используя пользовательский геттер и сеттер

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.