2016-03-07 81 views
1

我想尝试在以下API中发布参数,但参数没有正确传递,并且收到的响应给出了消息,即数据是必需的。所以任何人都可以请帮忙解决这个问题。AFNetworking 2.0用字典数组发送帖子请求参数

我的网址是

forapp.com/api/getContacts.php?data= [ { “名”: “ABC”, “手机”: “1234567890”},{ “名”: “凯特 钟”, “手机”: “9925992599”}]

,所以我怎么能这样类型的请求传递给API

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
    NSDictionary *params = @{@"name": @"hello", 
          @"phone": @"1234567890"}; 
    NSLog(@"Dict %@",params); 
    manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"]; 

[manager POST:@"http://forapp.com/api/getContacts.php" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"JSON: %@", responseObject); 

} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Error: %@", error); 

}]; 
+1

通常这样。它非常容易调用与AFNetworking 2.0 WS http://stackoverflow.com/questions/33767908/volunteermatch-api-objective-c/33886449#33886449 – Vvk

+0

看看我的答案希望这有助于: - http://stackoverflow.com/a/35497323/3515115 –

回答

6

只需添加

步骤-1

// create the dictionary of {"name":"abc","phone":"1234567890"},{"name":"Kate Bell","phone":"9925992599"} this 

NSDictionary *params = @{@"name": @"hello", 
         @"phone": @"1234567890"}; 

步骤2

//create the one array of this output [ {"name":"abc","phone":"1234567890"},{"name":"Kate Bell","phone":"9925992599"} ] 

NSMutableArray *arr = [NSMutableArray arrayWithObjects:params,nil]; 

步骤3

// convert your object to JSOn String 
NSError *error = nil; 
NSString *createJSON = [[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:objectsInCart 
                       options:NSJSONWritingPrettyPrinted 
                        error:&error] 
             encoding:NSUTF8StringEncoding]; 

步骤4

步骤-5

// finally start your request 
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 

    NSLog(@"Dict %@",pardsams); 
    manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"]; 

[manager POST:@"http://forapp.com/api/getContacts.php" parameters:pardsams success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"JSON: %@", responseObject); 

} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Error: %@", error); 

}]; 
+0

所以我必须在参数传递数组? – Birendra

+0

我不知道你可以传递数组给你的请求,我们不知道你的请求的原因,尝试一次 –

+0

不能正常工作它的给出相同的响应数据 – Birendra

1

按照这个网址

forapp.com/api/getContacts.php?data=[ {"name":"abc","phone":"1234567890"},{"name":"Kate Bell","phone":"9925992599"} ] 

你应该实现这样

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
    NSDictionary *params = @{@"name": @"hello", 
          @"phone": @"1234567890"}; 
    NSLog(@"Dict %@",params); 
manager.responseSerializer = [AFJSONResponseSerializer serializer]; 

manager.requestSerializer = [AFJSONRequestSerializer serializer]; 

    manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"]; 

[manager POST:@"http://forapp.com/api/getContacts.php" parameters:@{@"data": @[params]} success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"JSON: %@", responseObject); 

} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Error: %@", error); 

}]; 
1

添加以下内容:

// httpClient is a subclass of AFHTTPRequestOperationManager or AFHTTPSessionManager 
httpClient.requestSerializer = AFJSONRequestSerializer; 

而且还检查你的发布数组不包含任何其他对象。它只包含数组。