Code that implements the same function of POST asynchronous requests by ASI and AFN, asiafn
I'm a newbie in obj-c and have been using asihttp for some of my projects. When doing a post request in asihttp its done this way.
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; [request setPostValue:height forKey:@"user[height]"]; [request setPostValue:weight forKey:@"user[weight]"]; [request setDelegate:self]; [request startAsynchronous];
How wocould go about doing this is AFNetworking with a code example?
I already got the get Json getrequest working in AFNetworking but this post request is giving me some problems. Thanks for help in advance.
A:
Updated again for AFNetworking 2.0-see bottom
For AFNetworking 1.0:
NSURL *url = [NSURL URLWithString:@"https://mysite.com/"];AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: height, @"user[height]", weight, @"user[weight]", nil];[httpClient postPath:@"/myobject" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { NSString *responseStr = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]; NSLog(@"Request Successful, response '%@'", responseStr);} failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"[HTTPClient Error]: %@", error.localizedDescription);}];
For AFNetworking 2.0 (and also using the new NSDictionary syntax ):
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];NSDictionary *params = @{@"user[height]": height, @"user[weight]": weight};[manager POST:@"https://mysite.com/myobject" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"JSON: %@", responseObject);} failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error);}];