如何在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

这进入NSMutableArrayNSMutableArray 进入NSDictionary

【讨论】:

yaaa 没关系,但是如何在字典中添加排序数组 [dict setObject: 你的数组 forKey: key]; 无法添加,请问可以格式化一下吗?【参考方案4】:

array放入dictionary的简单方法是

  @@[element],@[element],@[element]

【讨论】:

这绝对是不相关的答案。

以上是关于如何在ios中发送多个参数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 5.2 中发送多个参数 AJAX

如何在一个请求中向多个设备(iOS)发送推送通知?

如何在 json 响应中发送多个参数? (拉拉维尔)

如何在 iOS swift 中使用 AVPlayer 请求发送参数?

如何在 Quickblox IOS 中更新已发送的消息

如何在 Swift 4 中使用 Alamofire 上传具有其他参数的多个图像