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"}.......** 

  • анализ JSON-объекта и подэлементов в приложении iphone
  • Анализ JSON на основе потока на Swift
  • Ошибка отображения массива изображения из URL-адреса
  • Как преобразовать escaped JSON-строку в NSString?
  • Проблема AFNetworking с ответом: неавторизованный (401)
  • RestKit - приложение ожидаемого типа контента / json
  • Как загрузить несколько файлов mp4 в фоновом режиме с прогрессом в iOS?
  • Разбор JSON внутри JSON в Objective-C
  • 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]; 

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

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