Ios Json POST web服务中的多个Json对象和3个字符串
我正在研究Post方法。我有3个JSON和3个字符串。我想将它们用于post方法。 我尝试了很多解决方案,但都没有解决。订单项目详细信息、订单详细信息、设备信息都有json对象Ios Json POST web服务中的多个Json对象和3个字符串,ios,objective-c,json,post,nsurlconnection,Ios,Objective C,Json,Post,Nsurlconnection,我正在研究Post方法。我有3个JSON和3个字符串。我想将它们用于post方法。 我尝试了很多解决方案,但都没有解决。订单项目详细信息、订单详细信息、设备信息都有json对象 NSURL *url=[NSURL URLWithString:@"my url"]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; [request setHTTPMethod:@"POST"]; NSMutableData *
NSURL *url=[NSURL URLWithString:@"my url"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setHTTPMethod:@"POST"];
NSMutableData *jsonData = [NSMutableData data];
// add params (all params are strings)
[jsonData appendData:[[NSString stringWithFormat:@"{order_item_details=%@", orderItemDetails] dataUsingEncoding:NSUTF8StringEncoding]];
[jsonData appendData:[[NSString stringWithFormat:@",order_details=%@", orderDetails] dataUsingEncoding:NSUTF8StringEncoding]];
[jsonData appendData:[[NSString stringWithFormat:@",transaction_id=%@", transID] dataUsingEncoding:NSUTF8StringEncoding]];
[jsonData appendData:[[NSString stringWithFormat:@",order_unique_id=%@", unique] dataUsingEncoding:NSUTF8StringEncoding]];
[jsonData appendData:[[NSString stringWithFormat:@",user_id=%@", userid] dataUsingEncoding:NSUTF8StringEncoding]];
[jsonData appendData:[[NSString stringWithFormat:@",device_info=%@}", deviceInfo] dataUsingEncoding:NSUTF8StringEncoding]];
[request setURL:url];
[request setValue:[NSString stringWithFormat:@"%d", jsonData.length] forHTTPHeaderField:@"Content-Length"];
// //HTTP Authentication
NSString *authStr = [NSString stringWithFormat:@"%@:%@", @"admin", @"1234"];
NSData *authData = [authStr dataUsingEncoding:NSASCIIStringEncoding];
NSString *authValue = [authData base64Encoding];
[request setValue:[NSString stringWithFormat:@"Basic %@",authValue] forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:jsonData];
NSError *error = [[NSError alloc] init];
NSHTTPURLResponse *response = nil;
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if ([response statusCode] >= 200 && [response statusCode] < 300)
{
NSString *responseData = [[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
SBJsonParser *jsonParser = [SBJsonParser new];
NSDictionary *jsonData = (NSDictionary *) [jsonParser objectWithString:responseData error:nil];
NSLog(@"%@",jsonData);
}
创建字典,如下所示:-
NSDictionary *parameterDictionary = @{@"order_item_details":orderItemDetails, @"order_details":orderDetails, @"transaction_id":transID, @"order_unique_id":unique, @"user_id":userid, @"device_info":deviceInfo}; //Modify the dictionary as per your need
NSData *requestData = [NSJSONSerialization dataWithJSONObject:parameterDictionary options:NSJSONWritingPrettyPrinted error:nil];
[request setHTTPBody: requestData];
希望这对你有帮助 >我已经解决了这个问题,问题是服务器把数据当作一个对象。我已更改以下代码
NSMutableData *jsonData = [NSMutableData data];
[jsonData appendData:[[NSString stringWithFormat:@"order_item_details=%@&", orderItemDetails] dataUsingEncoding:NSUTF8StringEncoding]];
[jsonData appendData:[[NSString stringWithFormat:@"order_details=%@&", orderDetails] dataUsingEncoding:NSUTF8StringEncoding]];
[jsonData appendData:[[NSString stringWithFormat:@"transaction_id=%@&", transID] dataUsingEncoding:NSUTF8StringEncoding]];
[jsonData appendData:[[NSString stringWithFormat:@"order_unique_id=%@&", unique] dataUsingEncoding:NSUTF8StringEncoding]];
[jsonData appendData:[[NSString stringWithFormat:@"user_id=%@&", userid] dataUsingEncoding:NSUTF8StringEncoding]];
[jsonData appendData:[[NSString stringWithFormat:@"device_info=%@", deviceInfo] dataUsingEncoding:NSUTF8StringEncoding]];
[request setURL:url];
显示要发送json数据的格式。因此,这是必需的格式。对吗?不,这是json,我想用它来表示post方法服务器端post请求所需的格式是什么?所需的json也是相同的。我在json方面没有问题。我刚收到空值我不想发布json。我想要5个参数来发布。订单项目和订单详细信息有json,这是完美的。每个参数都有自己的值,它应该是json或简单字符串。
NSMutableData *jsonData = [NSMutableData data];
[jsonData appendData:[[NSString stringWithFormat:@"order_item_details=%@&", orderItemDetails] dataUsingEncoding:NSUTF8StringEncoding]];
[jsonData appendData:[[NSString stringWithFormat:@"order_details=%@&", orderDetails] dataUsingEncoding:NSUTF8StringEncoding]];
[jsonData appendData:[[NSString stringWithFormat:@"transaction_id=%@&", transID] dataUsingEncoding:NSUTF8StringEncoding]];
[jsonData appendData:[[NSString stringWithFormat:@"order_unique_id=%@&", unique] dataUsingEncoding:NSUTF8StringEncoding]];
[jsonData appendData:[[NSString stringWithFormat:@"user_id=%@&", userid] dataUsingEncoding:NSUTF8StringEncoding]];
[jsonData appendData:[[NSString stringWithFormat:@"device_info=%@", deviceInfo] dataUsingEncoding:NSUTF8StringEncoding]];
[request setURL:url];