2014-11-14 86 views
0

我从服务器请求数据,但我有一个问题,它首先调用cookie比数据不像它首先应该是数据比cookie。那么请如何解决这个问题?AFNetworking POST AFHTTPRequestOperation队列问题

我已经通过Charles应用程序看到过这个问题。

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
[manager POST:string 
    parameters:@{@"data": @"<p_LM act=\"info\"/>", @"cookie": [temp objectForKey:@"cookie"]} 
     success:^(AFHTTPRequestOperation *operation, id responseObject) { 

      NSDictionary *dic = (NSDictionary *)responseObject; 

      NSString *parity = [dic objectForKey:@"Response"]; 
} 

回答

2

ParametersNSDictionary。当AF序列化的要求,它使用了NSDictionary字母排序描述:

NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"description" ascending:YES selector:@selector(compare:)]; 

所以,你有两个选择:

  • 重命名 “数据” 来如“aaa”,那么它将在“cookie”上方
  • 更改AFDod的AFQueryStringPairsFromKeyAndValue方法中的sortDescriptor,并在您执行pod update时处理它。

编辑,如果你想改变AFNetworking代码吊舱,使其为你工作,然后到指定的第二种方式

做:

  1. 搜索AFNetworking AFQueryStringPairsFromKeyAndValue方法pod

  2. change eg

    NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"description" ascending:YES selector:@selector(compare:)]; 
    

    NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"description" ascending:NO selector:@selector(compare:)]; 
    

    (只是改变字母排序,从底部到顶部)

  3. ,然后如果你会 一年后更新AFNetworking吊舱下一次或更早然后只需添加此更改再次因为您的更改将被新的pod更新覆盖...

+0

是的,当我将数据更改为aata时,它成为第一个。我怎样才能照顾pod更新? – CAN 2014-11-14 20:44:52

+0

pod更新将覆盖您的本地更改。所以您必须在每次更新AF窗格时添加代码更改。它并不经常..检查此链接:http://stackoverflow.com/questions/16613464/will-pod-update-overwrite-my-code-changes-when-a-new-version-of-the-pod -is-ava – kabarga 2014-11-14 21:03:34

+0

对不起,我无法理解解决方案。你能解释一下吗? – CAN 2014-11-14 21:46:40