创建后可以更改RKObjectManager
的基本URL吗?
我有登录框,并根据昵称决定应使用哪个API网址。如果我在填写完昵称/密码后创建了RKObjectManager
,则只能从RestKit(https://groups.google.com/forum/?fromgroups#!topic/restkit/wFNhpCW-URA)进行一次调用。如果我创建RKObjectManager
viewDidLoad
函数-我无法更改URL。
我的问题有同样的解决方法吗?
谢谢。
最佳答案
只是花了一段时间才能弄清楚如何在v0.20中完成此操作。据我所知,如果不进入AFNetworking源代码,就无法直接更改基本URL。您可以创建一个新的HTTPClient
并进行设置,但是我发现这引起了更多的问题,大概是因为在您设置HTTPClient
时,RestKit在AFNetworking的RKObjectManager
上进行了一些额外的配置,并且直接设置了客户端,您就没有了。
我想出了这个解决方案,它是使用新的baseURL创建另一个RKObjectManager
并重新添加描述符。您还需要再次设置序列化和 header 类型。
NSString *urlString = @"http://www.something.com/api";
RKObjectManager *newManager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:urlString]];
[newManager setRequestSerializationMIMEType:RKMIMETypeJSON];
[newManager setAcceptHeaderWithMIMEType:RKMIMETypeJSON];
[newManager addResponseDescriptorsFromArray:[RKObjectManager sharedManager].responseDescriptors];
[newManager addRequestDescriptorsFromArray:[RKObjectManager sharedManager].requestDescriptors];
[RKObjectManager setSharedManager:newManager];
相关文档:Using Multiple Base URLs in RestKit