我正在尝试使用目标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等等,它们似乎会被忽略。
答案 0 :(得分:1)
您无法以当前的方式使用请求管理器执行此操作。
相反,您需要自己创建参数列表,然后从中创建请求。然后,您可以使用AFN来处理请求传输和响应。
请注意,服务器不应该要求特定订单,并且如果可能,应该更改。另请注意,参数字典没有顺序(即使您按设定顺序添加键)。
答案 1 :(得分:0)
保持参数顺序对服务器性能有很大影响。起初听起来很愚蠢,但请考虑一下包含查询字符串作为URL一部分的GET请求。 Web服务器可以缓存给定URL的响应。如果您弄乱了参数的顺序,则缓存将无法发挥应有的作用。
如果您从不同的平台(iOS,Android,Web)调用API,并且它们都对参数进行重新排序,情况就更糟了,这意味着将在3个不同的缓存键上找到相同的内容。
首先保持订单是性能问题。