objective-c – Afnetworking post数组
发布时间:2020-12-16 07:07:51 所属栏目:百科 来源:网络整理
导读:我试图发布一个数组作为帖子而不是字典.但是我收到一个错误: Incompatible pointer types sending NSMutableArray to parameter of type NSDictionary 这是代码 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];NSMutab
我试图发布一个数组作为帖子而不是字典.但是我收到一个错误:
Incompatible pointer types sending NSMutableArray to parameter of type NSDictionary 这是代码 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; NSMutableArray *parameters = @[@"foo",@"bar"]; [manager POST:@"http://example.com/resources.json" parameters:parameters success:^(AFHTTPRequestOperation *operation,id responSEObject) { NSLog(@"JSON: %@",responSEObject); } failure:^(AFHTTPRequestOperation *operation,NSError *error) { NSLog(@"Error: %@",error); }]; 如何发布JUST数组内容? 更新: 这段代码有效,但我更愿意得到下面的答案,因为它的清洁和af处理序列化.我猜测请求体是不同的,但我怎么看到身体是什么? NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:parameters options:NSJSONWritingPrettyPrinted error:&error]; NSString *body = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://example.com/resources.json"] cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:10]; [request setHTTPMethod:@"POST"]; [request setValue: @"application/json" forHTTPHeaderField:@"Content-Type"]; [request setHTTPBody: [body dataUsingEncoding:NSUTF8StringEncoding]]; AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request]; op.responseSerializer = [AFJSONResponseSerializer serializer]; [op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation,id responSEObject) { NSLog(@"JSON responSEObject: %@ ",responSEObject); } failure:^(AFHTTPRequestOperation *operation,NSError *error) { NSLog(@"Error: %@",[error localizedDescription]); }]; [op start]; 解决方法
我假设您希望foo和bar成为没有任何值的参数?如果是这样你会想做这样的事情
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; NSMutableArray *parameters = @[@"foo",@"bar"]; NSDictionary *params = [[NSDictionary alloc] initWithObjects:@[[NSNull null],[NSNull null]] forKeys:parameters]; [manager POST:@"http://example.com/resources.json" parameters:params success:^(AFHTTPRequestOperation *operation,error); }]; 编辑 manager.requestSerializer = [AFJSONRequestSerializer serializer]; manager.responseSerializer = [AFJSONResponseSerializer serializer]; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |