我正在开发一个通过HTTP与Web服务器通信的iOS应用程序。
在我的MVC中,服务器通信由名为serverCommunicator的单例类处理。还有多个其他类将使用serverCommunicator将HTTP命令发送到Web服务器。 serverCommunictor将命令发送到服务器,然后使用NSNotificationCenter在响应返回时通知侦听器类。
我的问题是,因为这些类中的每一个都将发送不同的post命令,并且在大多数情况下期望来自服务器的特定post响应,让这些类解析响应以便弄清楚的标准和正确方法是什么?如果这个响应真的是针对该类发送的命令。
我是http协议的新手,所以我不确定我是否正确这样做。如果有更好的方法请告诉我。我能想到的一种方法是让服务器在响应体中添加命令,但我不确定这是否是正确的方法。
谢谢!
答案 0 :(得分:2)
我所做的是在NSURLRequest上附加一个标识符。作为响应的一部分,相同的请求会回复给您,因此您可以提取标识符并进行检查。
以相当奇怪的方式提供了这样做的方法:
NSMutableURLRequest* req = [NSMutableURLRequest requestWithURL:url];
[NSURLProtocol setProperty:someValue forKey:@"someKey" inRequest:req];
现在继续根据需要配置URL请求,并使用它来发布帖子。回复后,请提取请求并以相反的方式反向使用:
id value = [NSURLProtocol propertyForKey:@"someKey" inRequest:req];