我正在使用AFNetworking 2.0并且有一个AFHTTPRequestOperationManager
子类HTTPClient
来处理我应用中的所有HTTP流量。
我已将requestSerializer
的{{1}}属性设置为HTTPClient
,该属性应编码JSON中的参数并将其放入请求正文中。
这一切都有效,但有些请求要求我将参数直接编码在其URL而不是默认的JSON格式中。
我考虑过在自定义[AFJSONRequestSerializer serializer]
上设置requestSerializer
属性,但这个类没有这样的属性。
TL; DR:有没有办法为每个HTTP请求设置requestSerializer属性?
答案 0 :(得分:1)
AFHTTPRequestOperation
没有requestSerializer
请求。我认为这种混乱的发生是因为你错误地考虑了对象创建的顺序。
如果您使用经理,会发生以下情况:
AFHTTPRequestOperation
并将此请求分配给它。因此,如果您想使用不同的请求序列化程序发出请求,那很简单:
/* 1. Make a NSMutableURLRequest using your own serializer */
NSMutableURLRequest *request = [myDifferentRequestSerializer requestWithMethod:@"GET" URLString:@"http://www.aol.com" parameters:parameters error:nil];
/* 2. Create an AFHTTPRequestOperation and assign this request to it. */
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperationManager sharedManager] HTTPRequestOperationWithRequest:request success:success failure:failure];
/* 3. Start the operation! */
[[AFHTTPRequestOperationManager sharedManager].operationQueue addOperation:operation];