afnetworking请求参数序列

时间:2014-11-17 06:23:33

标签: objective-c httprequest afnetworking-2

我正在尝试使用目标c中的afnetworking生成请求,但是,我尝试连接的硬件似乎仅在请求的参数按特定顺序时才应用请求。所以我想知道是否有办法提出请求,以便参数按特定顺序排列。 (正如这样做通常似乎混淆了参数的顺序)

这是我的代码:

NSDictionary *params = @{
                         @"param1" : @"bla",
                         @"param2" : @"bla2",
                         @"param3" : @"bla3"
                         };

[requestManager GET:@"somewhere" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
                DLog(@"Success!");
            } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                DLog(@"Fail: %@", error);
            }];

它实际上每次都取得成功,只是我所申请的请求几乎被忽略了。

实际的请求体变成了“param3 = bla3& param1 = bla1& param2 = bla2等等,它们似乎会被忽略。

2 个答案:

答案 0 :(得分:1)

您无法以当前的方式使用请求管理器执行此操作。

相反,您需要自己创建参数列表,然后从中创建请求。然后,您可以使用AFN来处理请求传输和响应。

请注意,服务器不应该要求特定订单,并且如果可能,应该更改。另请注意,参数字典没有顺序(即使您按设定顺序添加键)。

答案 1 :(得分:0)

保持参数顺序对服务器性能有很大影响。起初听起来很愚蠢,但请考虑一下包含查询字符串作为URL一部分的GET请求。 Web服务器可以缓存给定URL的响应。如果您弄乱了参数的顺序,则缓存将无法发挥应有的作用。

如果您从不同的平台(iOS,Android,Web)调用API,并且它们都对参数进行重新排序,情况就更糟了,这意味着将在3个不同的缓存键上找到相同的内容。

首先保持订单是性能问题。