En una entrada anterior vimos qué es y para qué sirve AFNetworking. En esa misma entrada, vimos cómo añadirla a nuestro proyecto Xcode, ahora haré un pequeño resumen que nos recuerde para qué sirve esta librería y veremos cómo solucionar este error de una forma muy sencilla.

AFNetworking es una librería que nos facilita la gestión de las tareas de networking para iOS y OSX.

Utilizamos AFNetworking porque nos ayuda sobre todo en temas de conversión de datos json, xml etc. También, hace menos tedioso trabajar con la sintaxis porque la hace más fácil de leer.

Una vez hemos alabado las bondades de AFNetworking, vamos a resolver un problema que nos puede ocurrir al hacer una llamada a un servicio web. Este error simplemente nos dice:

Unacceptable content-type: text/html

Esto ocurre porque nuestro servidor no está devolviendo un json puro, puede que la cadena json sea perfectamente válida, pero el formato en el que la recibimos es texto html.

Para solucionar el error como Dios manda, tendríamos que cambiar el tipo de contenido que devuelve nuestro servidor, pero si no tenemos acceso a eso, o no queremos marearnos demasiado, siempre podemos solucionar el problema diciéndole a AFNetworking que admita también contenido en html.

Para ello tenemos que ir a la clase “AFURLResponseSeriaization.m”. Este archivo se encuentra dentro de la carpeta Pods de nuestro proyecto.

Tenemos que buscar una línea que contenga este código:

self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", nil]

e indicarle que permita también texto en html. Al hacerlo, la línea quedaría de la siguiente forma:

self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", @"text/htm", nil]

Y listo, si volvemos a ejecutar nuestro código veremos que ya interpreta los datos correctamente y no muestra ese error.

Facebooktwittergoogle_plusredditpinterestlinkedinmail