我是obj-c的新手,并且一直在为我的一些项目使用asihttp。当在asihttp中做一个post请求时就这样做了。
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];使用代码示例AFNetworking如何做到这一点? I已经得到了让Json getrequest在AFNetworking工作,但这个帖子请求给了我一些问题。提前感谢您的帮助。
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.
推荐答案首先值得添加(因为这个答案在我最初编写它之后仍然流行了6年......)第一个你应该考虑的是你是否应该使用AFNetworking。 NSURLSession已添加到iOS 7中,这意味着您在许多情况下不需要使用AFNetworking - 少一个第三方库总是一件好事。
It's first worth adding (as this answer is still popular 6 years after I initially wrote it...) that the first thing you should consider is whether you should even use AFNetworking. NSURLSession was added in iOS 7 and means you don't need to use AFNetworking in many cases - and one less third party library is always a good thing.
对于AFNetworking 3.0 :
For AFNetworking 3.0:
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; NSDictionary *params = @{@"user[height]": height, @"user[weight]": weight}; [manager POST:@"example/myobject" parameters:params progress:nil success:^(NSURLSessionTask *task, id responseObject) { NSLog(@"JSON: %@", responseObject); } failure:^(NSURLSessionTask *operation, NSError *error) { NSLog(@"Error: %@", error); }];对于AFNetworking 2.0(以及使用新的NSDictionary语法):
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:@"example/myobject" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"JSON: %@", responseObject); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }];如果你不习惯使用AFNetworking 1.0,你需要这样做:
If you are stuck using AFNetworking 1.0, you need to do it this way:
NSURL *url = [NSURL URLWithString:@"example/"]; 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); }];更多推荐
AFNetworking发布请求
发布评论