0
点赞
收藏
分享

微信扫一扫

AFNnetworking快速教程,官方入门教程译

Jonescy 2022-07-27 阅读 60

 

AFNnetworking快速教程,官方入门教程译

分类: ​​IOS​​​2013-12-15 20:29 12489人阅读 ​​评论​​​(5) 收藏 ​​举报​​

​​afnetworking​​​​json​​​​ios​​​​入门教程​​​​快速教程​​

AFNetworking官网入门教程简单翻译,学习

AFNetworking 是一个能够快速使用的ios和mac os x下的网络框架,它是构建在Foundation URL Loading System之上的,封装了网络的抽象层,可以方便的使用,AFNetworking是一个模块化架构,拥有丰富api的框架。


一、HTTP请求与操作:

1、AFHTTPRequestOperationManager:

该类封装与Web应用程序进行通信通过HTTP,包括要求制作,响应序列化,网络可达性监控和安全性,以及要求经营管理的常见模式。


GET 请求:

 


[objc] view plaincopyprint?

1. AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
2. [manager@"http://example.com/resources.json":nilAFHTTPRequestOperation *operation, id responseObject) {
3. @"JSON: %@", responseObject);
4. }AFHTTPRequestOperation *operation, NSError *error) {
5. @"Error: %@", error);
6. }];

 

POST 带有表单参数的POST请求:


[objc] view plaincopyprint?

1. AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
2. NSDictionary *parameters = @{@"foo": @"bar"};
3. [manager@"http://example.com/resources.json"AFHTTPRequestOperation *operation, id responseObject) {
4. @"JSON: %@", responseObject);
5. }AFHTTPRequestOperation *operation, NSError *error) {
6. @"Error: %@", error);
7. }];


POST Multi-Part格式的表单文件上传请求:

 

[objc] view plaincopyprint?

1. AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
2. NSDictionary *parameters = @{@"foo": @"bar"};
3. NSURL *filePath = [NSURL@"file://path/to/image.png"];
4. [manager@"http://example.com/resources.json"id<AFMultipartFormData> formData) {
5. @"image":nil];
6. }AFHTTPRequestOperation *operation, id responseObject) {
7. @"Success: %@", responseObject);
8. }AFHTTPRequestOperation *operation, NSError *error) {
9. @"Error: %@", error);
10. }];


二、Session管理:
1、AFURLSessionManager:创建和管理制定的NSURLSession对象
2、NSURLSessionConfiguration对象必须实现<NSURLSessionTaskDelegate>, <NSURLSessionDataDelegate>, <NSURLSessionDownloadDelegate>, <NSURLSessionDelegate>协议


创建一个下载任务:

 


[objc] view plaincopyprint?

1. NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
2. AFURLSessionManager *manager = [[AFURLSessionManager initWithSessionConfiguration:configuration];
3.
4. NSURL *URL = [NSURL@"http://example.com/upload"];
5. NSURLRequest *request = [NSURLRequest requestWithURL:URL];
6.
7. NSURL *filePath = [NSURL@"file://path/to/image.png"];
8. NSURLSessionUploadTask *uploadTask = [manager:nilNSURLResponse *response, id responseObject, NSError *error) {
9. if (error) {
10. @"Error: %@", error);
11. else {
12. @"Success: %@ %@", response, responseObject);
13. }
14. }];
15. [uploadTask resume];


创建一个数据流任务:

 


[objc] view plaincopyprint?

1. NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
2. AFURLSessionManager *manager = [[AFURLSessionManager initWithSessionConfiguration:configuration];
3.
4. NSURL *URL = [NSURL@"http://example.com/upload"];
5. NSURLRequest *request = [NSURLRequest requestWithURL:URL];
6.
7. NSURLSessionDataTask *dataTask = [managerNSURLResponse *response, id responseObject, NSError *error) {
8. if (error) {
9. @"Error: %@", error);
10. else {
11. @"%@ %@", response, responseObject);
12. }
13. }];
14. [dataTask resume];


四、使用AFHTTPRequestOperation

1、AFHTTPRequestOperation是使用HTTP或HTTPS协议的AFURLConnectionOperation的子类。

它封装的获取后的HTTP状态和类型将决定请求的成功与否。

2、虽然AFHTTPRequestOperationManager通常是最好的去请求的方式,但是AFHTTPRequestOpersion也能够单独使用

 

通过GET方式:

 

[objc] view plaincopyprint?

1. NSURL *URL = [NSURL@"http://example.com/resources/123.json"];
2. NSURLRequest *request = [NSURLRequest requestWithURL:URL];
3. AFHTTPRequestOperation *op = [[AFHTTPRequestOperation initWithRequest:request];
4. op.responseSerializer = [AFJSONResponseSerializer serializer];
5. [opAFHTTPRequestOperation *operation, id responseObject) {
6. @"JSON: %@", responseObject);
7. }AFHTTPRequestOperation *operation, NSError *error) {
8. @"Error: %@", error);
9. }];
10. [[NSOperationQueue addOperation:op];

连续操作多个:



[objc] view plaincopyprint?

1. NSMutableArray *mutableOperations = [NSMutableArray array];
2. for (NSURL *fileURL in filesToUpload) {
3. NSURLRequest *request = [[AFHTTPRequestSerializer@"POST"@"http://example.com/upload":nilid<AFMultipartFormData> formData) {
4. @"images[]":nil];
5. }];
6.
7. AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation initWithRequest:request];
8.
9. addObject:operation];
10. }
11.
12. NSArray *operations = [AFURLConnectionOperation progressBlock:^(NSUInteger numberOfFinishedOperations, NSUInteger totalNumberOfOperations) {
13. @"%lu of %lu complete", numberOfFinishedOperations, totalNumberOfOperations);
14. }NSArray *operations) {
15. @"All operations in batch complete");
16. }];
17. [[NSOperationQueueNO];

举报

相关推荐

0 条评论