我在发布json对象时遇到问题

时间:2013-05-14 13:26:37

标签: ios json

NSString *username = @"user";
NSString *password = @"password";
NSMutableDictionary *dictionnary = [NSMutableDictionary dictionary];
[dictionnary setObject:username forKey:@"user_email"];
[dictionnary setObject:password forKey:@"user_password"];

NSLog(@".....%@....",dictionnary);

NSError *error = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionnary
                                                   options:kNilOptions
                                                     error:&error];

NSString *urlString = @"http://abcd.com/SVCs/WSUserService.svc/MobSignIn";

NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];

[request setHTTPBody:jsonData];
NSURLResponse *response = NULL;
NSError *requestError = NULL;
NSData *responseData = [NSURLConnection
                        sendSynchronousRequest:request
                        returningResponse:&response
                        error:&requestError];
NSString *responseString = [[NSString alloc]
                            initWithData:responseData
                            encoding:NSASCIIStringEncoding] ;
NSLog(@"%@", responseString);

我想将一个带有用户名和密码的json对象发布到Web服务..但它给出了一个模糊的输出..任何人都可以帮助我

Output:

2013-05-14 18:50:17.155 UWUI[6226:11303] .....{
"user_email" = user;
"user_password" = password;
}....

2013-05-14 18:50:18.233 UWUI [6226:11303]    **

  

后跟xml格式内容

**

2 个答案:

答案 0 :(得分:3)

NSString *UN = @"user";
NSString *PWD = @"password";
NSMutableDictionary *dictionnary = [NSMutableDictionary dictionary];
[dictionnary setObject:UN forKey:@"UN"];
[dictionnary setObject:PWD forKey:@"PWD"];

NSLog(@"dictionnary...%@", dictionnary);

NSError *error = nil;
NSData *jsonData =  [NSJSONSerialization dataWithJSONObject:dictionnary
                                                    options:kNilOptions
                                                      error:&error];


NSString *urlString = @"http://abcd.com/SVCs/WSUserService.svc/MobSignIn";

NSURL *url = [NSURL URLWithString:urlString];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:jsonData];
NSURLResponse *response = NULL;
NSError *requestError = NULL;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&requestError];
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding] ;
NSLog(@"%@", responseString);

答案 1 :(得分:1)

设置内容类型可能会解决您的问题。在发送之前将给定代码添加到您的请求中

[request addValue:@"application/json" forHTTPHeaderField:@"Content-type"];