AFNetworking 2.0
所以过去几天我一直在使用它,并且一切进展顺利——我使用它的次数越多,我就越开始了解它。
昨天我意识到我正在构建一个类来处理我的应用程序的 Web 服务 -GET / POST /DELETE
等等。
现在,AFNetworking 已经处理了这些事情,没有理由构建我自己的方法。然而,这是我陷入困境的部分。
这是我想要做的一个简短的例子:
在一DataStore
类课程中,我想做这样的事情:
RCBaseDataStore.h
-(void)handelWebService: (int) webServiceID
{
Switch (webServiceID)
case: GET_STORE_ITEMS_WSID
{
BBWebService *newService = [[BBWebService alloc]initWithURL:URL
RequestType:@"GET"
PostDataValuesAndKeys:nil
RequestProperties:nil
UrlParameters:urlParams];
}
}
在上面 - 我使用了 Web 服务 ID 的索引 - 这允许使用 switch 语句 - 但是有 30 或 40 个 Web 服务 - 所以这种方法会增长......很多。
我现在需要做的是让该BBWebService
URL 采取行动 - 然后构建 URL 并将参数放在一起 - 然后我将其交给内部BBWebService
运行的另一个方法GET / POST requests
我面临的问题:
- AFNetworking 完成所有这些(构建 URL 并运行请求) - 我如何使用它使用的方法 - 无需重新定义它们,而只是添加它们?
例如GET / POST requests
- 我需要存储我可以做responseObject
的。NSData object
但我不希望这个逻辑存在RCBaseDataStore
- 我希望它存在BBWebService
- 但没有覆盖AfNetworking
超类中的方法,我会在其中找到原始方法。
我查看AFRequestSteralization.h
了 AFNetworking 库中的文件,它的协议如下:
(NSURLRequest *)requestBySerializingRequest:(NSURLRequest *)request
withParameters:(NSDictionary *)parameters
error:(NSError *__autoreleasing *)error;
在注释中是这样说的:
返回具有指定参数的请求,该参数编码为原始请求的副本。
@param request 原始请求。@param parameters 要编码的参数。@param error 尝试对请求参数进行编码时发生的错误。
@return 一个序列化的请求。
现在我会让 BBWebService 符合这个协议,然后在 RCBaseData Store 中拥有执行请求的方法,以不同的方式完成 - 因为GET / POST
?
第一个论点是我不确定的——如何NSURLRequest
为 a 创建一个对象GET /POST request
?
一旦我提出请求 - 我如何BBWebService
才能捕获响应?
当我输入这个时,我在想......做两个类,一个是响应,一个是请求?我想我几乎已经找到了我需要的解决方案——不过只需要扫清道路。