ASI和AFN实现POST异步请求的同样功能的代码

来源:互联网 发布:windows 映射 编辑:程序博客网 时间:2024/06/07 05:26

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 would 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. 


答:

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);}];


1 0
原创粉丝点击