2014-11-14 2 views
0

Я запрашиваю данные с сервера, но у меня есть проблема с тем, что он сначала вызывает cookie, чем данные, в отличие от данных, которые должны быть сначала первыми, чем cookie. Поэтому, пожалуйста, как я могу исправить эту проблему?AFNetworking POST AFHTTPRequestOperation Queue issue

Я видел эту проблему через приложение Чарльза.

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

Parameters является NSDictionary. Когда AF сериализации запрос использует алфавитный дескриптор сортировки NSDictionary:

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

Итак, у вас есть два варианта:

  • Rename "данные" в, например, «aaa», то это будет выше «cookie»
  • изменить sortDescriptor в AFQueryStringPairsFromKeyAndValue метод стручка AF и позаботиться об этом, когда вы сделаете pod update.

отредактированный указать второй путь

, если вы хотите изменить AFNetworking код стручок, чтобы заставить его работать на вас, то сделать:

  1. поиска для метода AFQueryStringPairsFromKeyAndValue в AFNetworking pod

  2. изменить 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

+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

+0

Извините, я не мог понять решение. Не могли бы вы объяснить это, пожалуйста? – CAN

Смежные вопросы