0

In my app i need to post data to server and need to recieve response. But i am getting null value after posting data.Below is my full code. Thanks in advance.

{
        NSString *post =[[NSString alloc] initWithFormat:@"%@%@%@%@%@",[self.username_reg text],[self.emailid_reg text],[self.phone_reg text],[self.password_reg text],[self.confirmpassword_reg text]];
        NSLog(@"PostData: %@",post);
        NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
        NSURL *url=[NSURL URLWithString:@"https://servlet/URL"];

        NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

        NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[postData length]];


        [request setURL:url];
        [request setHTTPMethod:@"POST"];
        [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
        [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
        [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];


    NSMutableDictionary *postDict = [[NSMutableDictionary alloc] init];
    [postDict setValue:_username_reg.text forKey:@"UserName"];
    [postDict setValue:_emailid_reg.text forKey:@"Email"];
    [postDict setValue:_phone_reg.text forKey:@"Phone"];
    [postDict setValue:_password_reg.text forKey:@"Pass"];
    [postDict setValue:_confirmpassword_reg.text forKey:@"ConPass"];


    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:postDict options:0 error:nil];

    // Checking the format
    NSString *urlString =  [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];


    // Convert your data and set your request's HTTPBody property
    NSString *stringData = [[NSString alloc] initWithFormat:@"jsonRequest=%@", urlString];
    NSData *requestBodyData = [stringData dataUsingEncoding:NSUTF8StringEncoding];

    request.HTTPBody = requestBodyData;

        NSLog(@"bcbc:%@",requestBodyData);
        [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError)
         {
             NSString* newStr = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
             NSLog(@"new:%@",newStr);
             NSError *error;
            NSDictionary *json_Dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
                    NSLog(@"%@",json_Dict);
         }];

    }

The Request given format is:

{"UserName":"sony","Email":"ronyv@example.in","Phone":"7358700457","Pass":"sony88","ConPass":"sony88"}

The response need to get:

{"responseHeader":{"responseCode":0,"responseMessage":"Success"}}
Vignesh
  • 45
  • 1
  • 8
  • How about using AFNetworking? It might not be the answer to your question. But it is very easy to use for networking purposes, the best! – Bista Aug 09 '16 at 05:46
  • can you explain how to use AFNetworking – Vignesh Aug 09 '16 at 05:47
  • [AFNetworking](https://github.com/AFNetworking/AFNetworking) : Check the examples. – Bista Aug 09 '16 at 05:50
  • Try this [answer](http://stackoverflow.com/questions/38631178/uploading-image-to-server-detail-explanation-for-beginner/38695956#38695956) it may help. – Gokul G Aug 09 '16 at 05:55

1 Answers1

2

Try this code:

NSData* jsonData = [NSJSONSerialization dataWithJSONObject:@"your dictionary name" options:NSJSONWritingPrettyPrinted error:&error];

NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"jsonString: %@", jsonString);

NSData *requestData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];

NSMutableData *body = [NSMutableData data];
[body appendData:requestData];

NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[body length]];

NSURL *url = [NSURL URLWithString:@"your url"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
[request setHTTPMethod:@"POST"];
[request setHTTPShouldHandleCookies:NO];

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

[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:body];

NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
[[session dataTaskWithRequest:request
            completionHandler:^(NSData *data,
                                NSURLResponse *response,
                                NSError *error)
  {
      if (error) {
          failure(error);
      } else {
          NSDictionary * jsonDic =[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
         NSLog(@"%@",jsonDic);
          if ([jsonDic objectForKey:@"error"]) {

          }
          else{

          }

      }
  }] resume];
Pritesh Raiyani
  • 303
  • 1
  • 6