如何在ios中发送多个参数?
Posted
技术标签:
【中文标题】如何在ios中发送多个参数?【英文标题】:How to send multiple parameters in ios? 【发布时间】:2016-05-03 04:39:12 【问题描述】:如何发送json
格式的参数?
以下是我的输入参数:
[
"LoginID":151,
"UserID":0,
"SubUserID":0,
"WorkGroupID":92,
"WorksFor":"Doctor",
"UserWorkGroup":0
,
"SortingName":"",
"Searching":true,
"SortingOrder":"Desc",
"RecordsCount":10,
"PageIndex":0
]
之前我发送的参数如下:
[getProfileServices sendSynchronousPostRequestWithStringForAction:getProfileURL andParameters:[[NSDictionary alloc] initWithObjectsAndKeys:@"55",@"LoginID",@"0",@"UserID",@"0",@"SubUserID",@"90",@"WorkGroupID",@"Doctor",@"WorksFor",@"0",@"UserWorkGroup",nil] andRequestType:@"POST"];
如何像这样发送,但现在我需要添加上面提到的更多输入?
【问题讨论】:
【参考方案1】:只需使用以下代码..
NSMutableArray * myArray = [[NSMutableArray alloc]init];
NSMutableDictionary * myData = [[NSMutableDictionary alloc]init];
[myData setValue:@"151" forKey:@"LoginID"];
[myData setValue:@"0" forKey:@"UserID"];
[myData setValue:@"0" forKey:@"SubUserID"];
[myData setValue:@"92" forKey:@"WorkGroupID"];
[myData setValue:@"Doctor" forKey:@"WorksFor"];
[myData setValue:@"0" forKey:@"UserWorkGroup"];
[myArray addObject:myData];
myData = [[NSMutableDictionary alloc]init];
[myData setValue:@"," forKey:@"SortingName"];
[myData setValue:@"1" forKey:@"Searching"];
[myData setValue:@"Desc" forKey:@"SortingOrder"];
[myData setValue:@"10" forKey:@"RecordsCount"];
[myData setValue:@"0" forKey:@"PageIndex"];
[myArray addObject:myData];
NSData *jsonData2 = [NSJSONSerialization dataWithJSONObject:myArray options:NSJSONWritingPrettyPrinted error:nil];
NSString *jsonString = [[NSString alloc] initWithData:jsonData2 encoding:NSUTF8StringEncoding];
NSLog(@"Your final jsonData as string:\n%@", jsonString);
如果你想将此数据发送到服务器,那么你可以使用这个代码:
NSData *dataToSend = [NSJSONSerialization dataWithJSONObject:myArray options:0 error:nil];
[getProfileServices sendSynchronousPostRequestWithStringForAction:getProfileURL andParameters:[[NSDictionary alloc] initWithObjectsAndKeys:dataToSend] andRequestType:@"POST"];
【讨论】:
很好,但是如何在这个帖子请求中添加那个字典 [getProfileServices sendSynchronousPostRequestWithStringForAction:getProfileURL andParameters:[ ,nil] andRequestType:@"POST"]; 最后,你会得到一个 NSString。因此,您可以将此数据作为字符串发送。我认为,您之前已经在服务器上发送了一个字符串。所以你可以在这里使用相同的代码。 是的,我得到了字符串,但是如何在 post 请求中发送它? 检查我的更新答案。我已经写了一个解决方案来在服务器上发送一个数组。但是如果你有一个向服务器发送字符串的解决方案,那么你就可以使用它。 我使用了相同的代码,但出现错误 no visible @interface for NSDictionary 声明选择器'initwithObjectsAndKeys 和请求类型【参考方案2】:你可以这样做,
NSDictionary *dict1 = @@"LoginID":@"151",@"UserID":@"0",@"SubUserID":@"0",@"WorkGroupID":@"92",@"WorksFor":@"Doctor",@"UserWorkGroup":@"0";
NSDictionary *dict2 = @@"SortingName":@",",@"Searching":@"true",@"SortingOrder":@"Desc",@"RecordsCount":@"10",@"PageIndex":@"0";
NSArray *arr = [NSArray arrayWithObjects:dict1,dict2, nil];
NSData *dataToSend = [NSJSONSerialization dataWithJSONObject:arr options:0 error:nil];
[getProfileServices sendSynchronousPostRequestWithStringForAction:getProfileURL andParameters:[[NSDictionary alloc] initWithObjectsAndKeys:dataToSend andRequestType:@"POST"];
希望这会有所帮助:)
【讨论】:
【参考方案3】:将它添加到NSMutableArray
并将该数组添加到NSDictionary
。喜欢;
"LoginID":151,"UserID":0,"SubUserID":0,"WorkGroupID":92,"WorksFor":"Doctor","UserWorkGroup":0
这进入NSMutableArray
和NSMutableArray
进入NSDictionary
【讨论】:
yaaa 没关系,但是如何在字典中添加排序数组 [dict setObject: 你的数组 forKey: key]; 无法添加,请问可以格式化一下吗?【参考方案4】:将array放入dictionary的简单方法是
@@[element],@[element],@[element]
【讨论】:
这绝对是不相关的答案。以上是关于如何在ios中发送多个参数?的主要内容,如果未能解决你的问题,请参考以下文章