AFNetworking Error de tipo de contenido esperado

Estoy recibiendo la cadena json en bloque de falla

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]; 

Salida:

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

El error es claro: el service web está devolviendo un tipo de contenido incorrecto. El tipo de contenido debe ser uno de estos:

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

Pero regresa

Texto sin formatting

Además, si miras la respuesta http, devuelve HTML TAGS dentro de ella, por lo que AFNetworking no puede analizar.

Si esta página:

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

está bajo su control, corrige el comportamiento que elimina las tags html y cambia el tipo de contenido

Debe agregar esta línea antes de la operación.

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

En AFNetworking, debe crear NSURLRequest con la ayuda de AFHTTPClient (primero tiene que crear AFHTTPClient y debe establecer algunas properties para este object) como a continuación

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

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

ahora si depende de GET / POST o cualquier otro tipo de request, necesita configurar el parámetro que considero como POST Request, así que establezca el dictado de parámetro y establezca todos los pares de valores key requeridos correctamente. Si no se requieren parameters, puede pasar Parámetros como 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]; 

espero que esto te funcione 🙂