我在这里搜索了很多,但是我找不到我的问题的正确答案。 这里的问题:在NSOperation子类中发送多个请求:同步还是异步模式?
我想出了在NSOperation
子类内发送多个上传请求的正确机制。
- 首先,它从本地分贝检索数据
- 然后将合成的数据发送到网络服务器
由于,这些:特别地,这类其main
方法内执行两个不同的操作两个操作可能需要一段时间才能执行,我已经说过,在NSOperation
内包装它们。
要上传数据,我决定采用同步模式(我需要将我的应用程序与已成功提交到Web服务器的上传请求数同步)。
要执行类似的上传,我使用ASIHttpRequest以类似于下面的同步方式。
for (int i = 0; i < numberOfUploads; i++) {
// 1-grab data here...
// 2-send data here
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request startSynchronous];
NSError *error = [request error];
if (!error) {
int response = [request responseStatusCode];
if(response == 200)
uploads++;
}
}
所以,我的问题是:
- 这是一个有效的解决方案将数据上传到Web服务器?
- 是否有效在后台线程中创建
ASIHTTPRequest *request
? - 我必须使用异步模式吗?如果是,如何?
注意我使用ASIHttpRequest的同步请求,但我认为同样的模式可以用NSUrlConnection
类通过
sendSynchronousRequest:returningResponse:error:
应用于预先感谢您。
只要你想在后台线程中使用ASIHTTPRequest
你必须只调用同步调用打电话,因为线程将尽快在发送关闭请求,
我已经在我的项目中做了类似的事情没有任何问题。 NSOperation这是一个下载ASIHTTPRequest。 – msk 2012-03-30 06:29:38