How to install POST JSON object on server in iOS5?

I want to send a new object created on iOS to the receiving server using the POST method using the JSON data type. From what I know about receiving data from the server in iOS, it is that all JSON processing has been simplified by Apple with the introduction of iOS 5. But unlike GETting JSON objects, POSTing this isn’t really described anywhere, I could to find ...

The first steps I took to solve the problem were as follows:

  //build an info object and convert to json NSDictionary *newDatasetInfo = [NSDictionary dictionaryWithObjectsAndKeys:name, @"name", language, @"language", nil]; //convert object to data NSData* jsonData = [NSJSONSerialization dataWithJSONObject:newDatasetInfo options:kNilOptions error:&error]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; [request setURL:someURLSetBefore]; [request setHTTPMethod:@"POST"]; // any other things to set in request? or working this way? [[NSURLConnection alloc] initWithRequest:request delegate:self]; // What to do with NSURLConnection? Or how to send differently? 

But I really don't know how to send a JSON object to the server using the POST method . Can anyone help me out?

+7
source share
4 answers

I worked by trying a little, here is my code:

  //build an info object and convert to json NSDictionary *newDatasetInfo = [NSDictionary dictionaryWithObjectsAndKeys:name, @"name", language, @"language", nil]; //convert object to data NSData* jsonData = [NSJSONSerialization dataWithJSONObject:newDatasetInfo options:kNilOptions error:&error]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; [request setURL:someURLSetBefore]; [request setHTTPMethod:@"POST"]; [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; [request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; [request setHTTPBody:jsonData]; // print json: NSLog(@"JSON summary: %@", [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]); NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; [connection start]; 
+16
source
 - (IBAction)txtFetchData2:(id)sender { NSString *queryString = [NSString stringWithFormat:@"http://example.com/username.php?name=%@", [self.txtName text]]; NSMutableURLRequest *theRequest=[NSMutableURLRequest requestWithURL:[NSURL URLWithString: queryString] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; NSDictionary* jsonDictionary = [NSDictionary dictionaryWithObjectsAndKeys: @"Value1", @"Key1", @"Value2", @"Key2", nil]; NSError *error; NSData* jsonData = [NSJSONSerialization dataWithJSONObject:jsonDictionary options:NSJSONWritingPrettyPrinted error:&error]; [theRequest setHTTPMethod:@"POST"]; [theRequest addValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; // should check for and handle errors here but we aren't [theRequest setHTTPBody:jsonData]; [NSURLConnection sendAsynchronousRequest:theRequest queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { if (error) { //do something with error } else { NSString *responseText = [[NSString alloc] initWithData:data encoding: NSASCIIStringEncoding]; NSLog(@"Response: %@", responseText); NSString *newLineStr = @"\n"; responseText = [responseText stringByReplacingOccurrencesOfString:@"<br />" withString:newLineStr]; [self.lblData setText:responseText]; } }]; } 
+2
source

NSString * strUrl = @ "URL"; NSURL * url = [NSURL URLWithString: strUrl];

 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60.0]; // For set postdata in string NSString *strPatientID = [NSString stringWithFormat:@"%@%@%@%@",self.txtDegit1.text,self.txtDegit2.text,self.txtDegit3.text,self.txtDegit4.text]; NSString *deviceToken = @""; postString = [NSString stringWithFormat:@"practiceid=%@&email=%@&password=%@&devicetoken=%@",strPatientID,self.txtUsername.text,self.txtPassword.text,deviceToken]; NSMutableData *httpDataBody = [NSMutableData data]; [httpDataBody appendData:[postString dataUsingEncoding:NSUTF8StringEncoding]]; NSString *strPostLength = [NSString stringWithFormat:@"%lu",[httpDataBody length]]; if ([httpDataBody length ] > 0){ [request addValue:@"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField:@"Content-Type"]; [request setHTTPMethod:@"POST"]; [request addValue:strPostLength forHTTPHeaderField:@"Content-Type"]; [request setHTTPBody:httpDataBody]; } urlConnection = [[NSURLConnection alloc]initWithRequest:request delegate:self]; [urlConnection start]; 
+1
source
 NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; [request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://webstar52.com/demo/webcommunity/work.php"]]]; NSString *post = [NSString stringWithFormat:@"&tag=%@&user_id=%@",@"getcontact",@"10408"]; NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]]; [request setHTTPMethod:@"POST"]; [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Current-Type"]; [request setHTTPBody:postData]; conn = [[NSURLConnection alloc]initWithRequest:request delegate:self]; 
0
source

All Articles