强制将响应对象返回给 AFNetworking

Posted

技术标签:

【中文标题】强制将响应对象返回给 AFNetworking【英文标题】:Forcing return of response object to AFNetworking 【发布时间】:2014-10-24 23:24:53 【问题描述】:

我正在使用 AFNetworking 运行 php 脚本,如下所示:

NSString *urlString = @"scriptURL.php";
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:urlString parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) 
    ...
 success:^(AFHTTPRequestOperation *operation, NSDictionary *responseObject) 
    NSLog(@"it worked!");
 failure:^(AFHTTPRequestOperation *operation, NSError *error) 
    NSLog(@"error: %@", error.description);
];

但是,脚本的某些部分需要更长的时间才能运行(发送一堆推送通知)。目前,这意味着在发送所有推送之前我不会收到响应对象,从而导致严重延迟。有没有办法强制返回响应对象,以便可以在后台运行更长、更耗时的操作?换句话说,我是否可以强制返回一个响应对象,以便它在我开始发送推送通知之前返回,这样 ios 端就不需要在等待其他操作完成时停滞不前

【问题讨论】:

【参考方案1】:

每个人都可能会告诉您,您想要实现的目标与 AFNetworking 无关,也与您的 iPhone 应用程序本身无关。基本上,如果您的 API 计算它必须做的事情(在这种情况下是发送推送通知)花费的时间太长,AFNetworking 会忽略它,但只是在等待响应。

如果我没记错的话,你自己开发 PHP,所以你可能想快速浏览一下如何在 PHP 中运行后台进程来实现你所说的。

有几个链接可能对您有所帮助:

https://florian.ec/articles/running-background-processes-in-php/ http://www.sitecrafting.com/blog/to-run-php-code-in

还有其他几个可能最适合您的需求。 希望这能让您走上正确的道路。

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。 嗨,马特,明白了。但我只是不想在标题严格指 iOS 和 AFNetworking 时添加一堆 PHP 代码(尽管我认为这是解决这个问题的唯一方法)。

以上是关于强制将响应对象返回给 AFNetworking的主要内容,如果未能解决你的问题,请参考以下文章

iOS——是不是可以强制 UILabel 子类对象成为第一响应者?

Django框架之给客户端返回数据

Laravel 强制 json 响应 api

内置对象综合

webform-内置对象

如何强制 IIS7 返回 Tomcat 错误响应