soumya
soumya

Reputation: 3811

How to send json data in the Http request to POST Method in JSON Parsing

I need to Parse below string to POST method in iOS

"jsonData":{"empId":"cxvd","password":"sfsd"}

But I m getting the error as

Res: Tomcat Error

HTTP Status 400 - Required String parameter 'jsonData' is not present

//------ Method I have used to Parse is ---------- //

+(void) requestToServerForLogin:(NSString*)userName andPassward: (NSString*)password  onCompletion:(RequestCompletionHandler) handler
{
    NSString *url = [Ip stringByAppendingString:@"login"];

    NSString *jsonString = [NSString stringWithFormat:@"\"jsonData\":{\"empId\":\"%@\",\"password\":\"%@\"}",
                                                      userName,
                                                      password ];

     NSURL *nsurl = [NSURL URLWithString:url];

     NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:nsurl];
     [urlRequest setTimeoutInterval:60.0f];
     [urlRequest setHTTPMethod:@"POST"];
     [urlRequest setValue:@"application/json"
     forHTTPHeaderField:@"Content-type"];

     NSString *body = jsonString1;

     [urlRequest setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding]];
     NSLog(@"urlRequest :%@",[body dataUsingEncoding:NSUTF8StringEncoding]);

     NSOperationQueue *queue = [[NSOperationQueue alloc] init];

     [NSURLConnection sendAsynchronousRequest:urlRequest
                                       queue:queue
                           completionHandler:^(NSURLResponse *response,
                                               NSData *data1, NSError *error) 
                                             {
                                                  NSString *res = [[NSString alloc] initWithData:data1 encoding:NSUTF8StringEncoding];
                                                  if(handler) handler(res,error);
                                             }];

}

Thanks in advance

Upvotes: 2

Views: 2095

Answers (1)

zaph
zaph

Reputation: 112857

There is way to much code. The substringToIndex and substringFromIndex are wrong, should not be in the code.

Use the literal syntax for the dictionaries:

NSDictionary *jsonDict = @{@"jsonData":@{@"password":password, @"empId":userName}};
NSData* jsonData =  [NSJSONSerialization dataWithJSONObject:jsonDict options:0 error:&error];

Upvotes: 2

Related Questions