RestKit不发送第二个请求 我有一个简单的应用程序,1个视图和2个按钮 按钮的标题是主机名(yandex.ru和localhost:3000) 当我第一次点击任何按钮时 请求有效 但如果我第二次点击任何它不发送它.... 我做错了什么?
下面的是我的ViewController
代码的一部分- (IBAction)testRestkit:(UIButton *)sender
{
RKClient *client =[RKClient clientWithBaseURLString:[NSString stringWithFormat:@"http://%@",sender.titleLabel.text]];
client.cachePolicy = RKRequestCachePolicyNone;
[client get:nil delegate:self];
}
- (void)requestWillPrepareForSend:(RKRequest *)request
{
NSLog(@"Preparing for request......");
}
- (void)request:(RKRequest *)request didFailLoadWithError:(NSError *)error
{
NSLog(@"%@",[error localizedDescription]);
}
- (void)request:(RKRequest *)request didLoadResponse:(RKResponse *)response
{
if ([response isHTML]) {
NSLog(@"Loaded html!");
} else{
NSLog(@"Loaded some response!");
}
}
答案 0 :(得分:0)
如果我发送下面的代码请求。他们工作!!!! 有人可以解释两种方法之间的区别???
- (IBAction)testRestkit:(UIButton *)sender
{
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://%@",sender.titleLabel.text]];
RKRequest *theRequest = [[RKRequest alloc] initWithURL:url];
theRequest.queue = [RKClient sharedClient].requestQueue;
theRequest.delegate = self;
[theRequest setMethod:RKRequestMethodGET];
[theRequest send];
}
答案 1 :(得分:0)
我认为问题在于,第一次调用clientWithBaseURLString:
时,[RKClient sharedClient]
单例被初始化(并且被正确保留),因此后续调用确实有效。当你第二次调用代码时,方便构造函数会返回一个自动释放的RKClient实例和另一个基本URL。
在RestKit中处理多个基本URL的正确方法是管理两个独立的RKClient实例,例如:
@property (nonatomic, retain) RKClient *localhostClient;
@property (nonatomic, retain) RKClient *remoteClient;
并初始化它们,例如。在你的init方法中(或懒惰地在你的方法中)。
static NSString *kRemoteServerUrl = @"http://yandex.ru";
- (IBAction)testRestkit:(UIButton *)sender
{
RKClient *client = nil;
if ([sender.titleLabel.text isEqualToString:kRemoteServerUrl]) {
if (!self.remoteClient) {
self.remoteClient = [RKClient clientWithBaseURLString:kRemoteServerUrl];
client.cachePolicy = RKRequestCachePolicyNone;
}
[self.remoteClient get:nil delegate:self];
} else if (.....)
....
}