ios - Body 中的 AFNetworking GET 参数

标签 ios web-services afnetworking-2

我有以下代码,我想强制参数位于 GET 调用的主体中,而不是查询字符串的一部分

NSString * requestURL = [NSString stringWithFormat:kXXXBaseAPIURL,@"findfriends"];

NSString * lastCallTime = [[XXXCommon sharedInstance] lastTimestampForURL:requestURL];

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

AFHTTPRequestSerializer * serializer =[AFJSONRequestSerializer serializer];
[[XXXCommon sharedInstance].currentAccount addAuthorization:serializer];

[manager setRequestSerializer:serializer];
[manager.requestSerializer setValue:lastCallTime forHTTPHeaderField:@"If-Modified-Since"];

[manager GET:requestURL parameters:@{@"Id":[XXXCommon sharedInstance].currentAccount.UserId, @"Details" : [[XXXCommon sharedInstance].contactFriends valueForKey:@"USER_KEY"]}
     success:^(AFHTTPRequestOperation *operation, id responseObject) {

         NSLog(@"%@",responseObject);


     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

         NSLog(@"Request failed with error: %@, %@ ", error, error.userInfo);

     }];

Details 参数是一个大数组,我不希望它们出现在查询字符串中,目前看起来像这样

http://xxx/api/findfriends?Details[]=%2B4823483943&Details[]=%2B234098234234&Details[]=%2B99999&Details[]=%2B77777777&Details[]=%2B999884&Details[]=%2B393949944

最佳答案

AFHTTPRequestOperation 的基础

NSURLConnection 不允许 GET 请求中包含正文。一般来说,GET 不允许主体,即使 curl 允许,它通常在服务器上工作。

如果要发送正文,请使用 POST 请求。

关于ios - Body 中的 AFNetworking GET 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30820455/

相关文章:

ios - 我怎样才能让我的segues更顺利地过渡?

swift - 使用 NSURLSession 复制 AFNetworking POST 请求

php - 使用 AfNetworking 2 将数据发布到 PHP 时,带有 NSArray 的 NSDictionary 正在转换为元素数组

ios - AFNetworking 2.0发送带有字典参数数组的发布请求

ios - Firebase 崩溃报告 : Failed to transmit crash: Error 400

ios - 如何在 Swift 中制作全角 UITextField

python 网络服务 : returning a fault from the server using ZSI

web-services - 如何阻止 IIS 处理 Soap 故障的错误代码

php - 如何在私有(private)和仅限成员的情况下构建一个 Restful api?

objective-c - 方法返回的对象的内存管理 (iOS/Objective-C)