【发布时间】:2012-01-15 09:42:45
【问题描述】:
每次发生变化时,我都会尝试将我的 iOS 应用程序连接到来自我的网络服务的 GET 数据。我目前的实现是使用 NSTimer 并执行 ASIHttpRequest 但我不喜欢那个轮询实现。有没有更好的方法?
我正在考虑启动请求并让它继续尝试,直到 Web 服务状态代码变为 OK(状态 200)或者可能是“已修改”状态代码。我将如何在视图控制器中执行此操作?
这是我目前所拥有的:
self.asiRequest = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:self.barcodeUrl]];
[self.asiRequest setDelegate:self];
[self.asiRequest startAsynchronous];
[self.asiRequest addRequestHeader:@"Accept" value:@"application/json"];
[self.asiRequest addRequestHeader:@"Content-Type" value:@"application/json"];
int statusCode = [self.asiRequest responseStatusCode];
我知道如果请求成功,委托方法- (void)requestFinished:(ASIHTTPRequest *)request
我想我的问题是,如何保持打开的 ASIHttpRequest 以便当 Web 服务返回“已修改”时,它会调用 GET 请求,然后再次保持打开的连接?这必须是异步的,并且不能在 UI 线程上运行,因为我不想让我的应用程序挂起。
非常感谢!
【问题讨论】:
标签: ios web-services asihttprequest polling