RestKit: cambiar la URL base de RKObjectManager

¿Es posible cambiar la URL base de RKObjectManager después de la creación?

Tengo un recuadro de inicio de session y, desde el apodo, decido qué URL debo usar para la API. Si creo RKObjectManager después de completar nick / password, solo puedo hacer una llamada desde RestKit ( https://groups.google.com/forum/?fromgroups#!topic/restkit/wFNhpCW-URA ). Si creo la function RKObjectManager viewDidLoad , no puedo cambiar la URL.

¿Hay la misma solución a mi problema?

Gracias.

Acabo de pasar un time averiguando cómo se puede hacer esto en v0.20. Por lo que puedo decir, no puedes cambiar directamente la URL base sin entrar en el código fuente de AFNetworking. Puede crear un nuevo HTTPClient y configurarlo, pero descubrí que esto causaba aún más problemas, presumiblemente porque RestKit está haciendo alguna configuration adicional en el HTTPClient de HTTPClient cuando configura el RKObjectManager , y al configurar el cliente directamente, se está perdiendo eso.

Se me ocurrió esta solución, que es crear otro RKObjectManager con el nuevo baseURL y volver a agregar los descriptores. También necesitará configurar su serialization y los types de encabezado nuevamente.

 NSString *urlString = @"http://www.something.com/api"; RKObjectManager *newManager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:urlString]]; [newManager setRequestSerializationMIMEType:RKMIMETypeJSON]; [newManager setAcceptHeaderWithMIMEType:RKMIMETypeJSON]; [newManager addResponseDescriptorsFromArray:[RKObjectManager shanetworkingManager].responseDescriptors]; [newManager addRequestDescriptorsFromArray:[RKObjectManager shanetworkingManager].requestDescriptors]; [RKObjectManager setShanetworkingManager:newManager]; 

Documentación relacionada: Uso de varias URL base en RestKit

Esta es la manera de cambiar el RestKit baseURL después de init:

 [RKObjectManager shanetworkingManager].client.baseURL = [RKURL URLWithString:newBaseUrlString]; 

Aviso de RestKit doc:

Cambiar el baseURL tiene el efecto secundario de hacer que se reconstruya la instancia requestCache. Las cachings se mantienen por host.

Lo uso y funciona bien 🙂

¡Ten cuidado!

Utilicé la respuesta aceptada para RestKit 2.0 PERO, desafortunadamente, esto llevó a un error de debugging difícil dentro del restkit. Lo que funcionó fue encapsular todo el process de creación de descriptores y otras configuraciones de gestor de objects en un método y llamarlo con el nuevo object gestor de objects antes de llamar [RKObjectManager setShanetworkingManager: newManager];

No creo que haya una solución para esto. RestKit utiliza la URL base internamente y no se puede cambiar.