0

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

我已经通过 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"];
}
4

1 回答 1

2

ParametersNSDictionary。当 AF 序列化请求时,它使用字母排序描述符NSDictionary

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

所以,你有两个选择:

  • 将“数据”重命名为“aaa”,然后它将位于“cookie”之上
  • 更改AFQueryStringPairsFromKeyAndValueAF 吊舱的方法中的 sortDescriptor 并在您这样做时照顾它pod update

编辑以指定第二种方式

如果您想更改 AFNetworking 代码 pod 以使其适合您,请执行以下操作:

  1. 在 AFNetworking pod 中搜索 AFQueryStringPairsFromKeyAndValue 方法

  2. 改变例如

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

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

    (只需从下到上更改字母排序)

  3. 然后如果您将在一年或更早的时间之后更新您的 AFNetworking pod,那么只需再次添加此更改,因为您的更改将被新的 pod 更新覆盖......

于 2014-11-14T15:52:52.417 回答