AFNetworking 3.0.4 的使用

Posted 原码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AFNetworking 3.0.4 的使用相关的知识,希望对你有一定的参考价值。

AFNetworking

 

本文永久链接:http://www.cnblogs.com/qianLL/p/5342593.html

 

pod \'AFNetworking\', \'~>3.0.4\'    <-------第三方

具体他的pod的过过程

http://www.cnblogs.com/qianLL/p/5331624.html

代码如下 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#import "ViewController.h"
#import "AFNetworking.h"
@interface ViewController ()
 
@end
 
@implementation ViewController
 
- (void)viewDidLoad {
    [super viewDidLoad];
    [self Upload];
//    [self dataTask];
//    [self MultiUpload];
//    [self Serialization];
//    [self PostMethod];
//    [self Reacheab];
     
     
}
//下载
-(void)Download{
    NSURLSessionConfiguration *configuration=[NSURLSessionConfiguration defaultSessionConfiguration];
     
    AFURLSessionManager *manager=[[AFURLSessionManager alloc]initWithSessionConfiguration:configuration];
     
    NSURL *URL=[NSURL URLWithString:@"example/download"];
    NSURLRequest *request=[NSURLRequest requestWithURL:URL];
     
    NSURLSessionDownloadTask *downloadTask=[manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
        NSURL *documentsDirectoryURL=[[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];
        return [documentsDirectoryURL URLByAppendingPathComponent:[response suggestedFilename]];
    } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {
        NSLog(@"file downloaded to :%@",filePath);
    }];
    [downloadTask resume];
     
}
// 上传
-(void)Upload{
    NSURLSessionConfiguration *configuration=[NSURLSessionConfiguration defaultSessionConfiguration];
     
    AFURLSessionManager *manager=[[AFURLSessionManager alloc]initWithSessionConfiguration:configuration];
     
    NSURL *url=[NSURL  URLWithString:@"example/upload.php"];
     
    NSURLRequest *request=[NSURLRequest requestWithURL:url];
     
    NSURL *filePath=[NSURL fileURLWithPath:@"path/aa.txt"];
     
    NSURLSessionUploadTask *uploadTask=[manager uploadTaskWithRequest:request fromFile:filePath progress:nil completionHandler:^(NSURLResponse * _Nonnull response, id  _Nullable responseObject, NSError * _Nullable error) {
        if (error) {
            NSLog(@"Errof:%@",error);
        }else{
            NSLog(@"Success:%@ %@",response,responseObject);
        }
    }];
    [uploadTask resume];
}
 
-(void)MultiUpload{
 
    NSMutableURLRequest *request=[[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"https:example/upload.php"  parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
        [formData appendPartWithFileURL:[NSURL fileURLWithPath:@"path/1.png"] name:@"file" fileName:@"filename.jpg" mimeType:@"image/jpeg" error:nil];
    } error:nil];
     
    AFURLSessionManager *manager=[[AFURLSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
     
    NSURLSessionUploadTask *uploadTask;
     
    uploadTask=[manager uploadTaskWithStreamedRequest:request progress:^(NSProgress * _Nonnull uploadProgress) {
        dispatch_async(dispatch_get_main_queue(), ^{
            [[UIProgressView new] setProgress:uploadProgress.fractionCompleted];
        });
    } completionHandler:^(NSURLResponse * _Nonnull response, id  _Nullable responseObject, NSError * _Nullable error) {
        if (error) {
            NSLog(@"errof:%@",error);
        }else{
            NSLog(@"%@ %@",response,responseObject);
        }
    }];
     
    [uploadTask resume];
}
// data Task
-(void)dataTask{
    NSURLSessionConfiguration *configuration=[NSURLSessionConfiguration defaultSessionConfiguration];
     
    AFURLSessionManager *manager=[[AFURLSessionManager alloc]initWithSessionConfiguration:configuration];
     
    NSURL *url=[NSURL URLWithString:@"http://1.studyios.sinaapp.com/gyxy.php?a=qq"];
     
    NSURLRequest *request=[NSURLRequest requestWithURL:url];
     
    NSURLSessionDataTask *dataTask=[manager dataTaskWithRequest:request completionHandler:^(NSURLResponse * _Nonnull response, id  _Nullable responseObject, NSError * _Nullable error) {
        if (error) {
            NSLog(@"Error: %@",error);
        }else{
            NSLog(@"%@ %@",response,responseObject);
        }
    }];
     
    [dataTask resume];
}
//GET方法
 
-(void)Serialization{
    NSURLSessionConfiguration *configuration=[NSURLSessionConfiguration defaultSessionConfiguration];
     
    AFURLSessionManager *manager=[[AFURLSessionManager alloc]initWithSessionConfiguration:configuration];
    NSString *url=@"http://1.studyios.sinaapp.com/gyxy.php";
    NSDictionary *parameters=@{@"a":@"BB",@"b":@"CC",@"c":@"aa"};
   NSMutableURLRequest *request= [[AFHTTPRequestSerializer serializer]requestWithMethod:@"GET" URLString:url parameters:parameters error:nil];
     
    NSURLSessionDataTask *dataTask=[manager dataTaskWithRequest:request completionHandler:^(NSURLResponse * _Nonnull response, id  _Nullable responseObject, NSError * _Nullable error) {
        if (error) {
            NSLog(@"Error: %@",error);
        }else{
            NSLog(@"%@",responseObject);
        }
    }];
    [dataTask resume];
     
}
//POST
-(void)PostMethod{
    NSURLSessionConfiguration *configuration=[NSURLSessionConfiguration defaultSessionConfiguration];
    AFURLSessionManager *manager=[[AFURLSessionManager alloc]initWithSessionConfiguration:configuration];
    NSString *url=@"http://1.studyios.sinaapp.com/mypost.php";
    NSDictionary *dic=@{@"can1":@"abc",@"can2":@"bcd"};
    NSMutableURLRequest *request=[[AFHTTPRequestSerializer serializer] requestWithMethod:@"POST" URLString:url parameters:dic error:nil];
//
//    
 
     
    NSURLSessionDataTask *dataTask=[manager dataTaskWithRequest:request completionHandler:^(NSURLResponse * _Nonnull response, id  _Nullable responseObject, NSError * _Nullable error) {
        if (error) {
            NSLog(@"Error: %@",error);
        }else{
//            NSLog(@"%@",responseObject);
        NSDictionary *dic=[NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];
            NSLog(@"%@",dic);
        }
    }];
    [dataTask resume];
 
}
 
-(void)Reacheab{
 
    [[AFNetworkReachabilityManager sharedManager]setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        NSLog(@"reacheability:%@",AFStringFromNetworkReachabilityStatus(status));
    }];
    [[AFNetworkReachabilityManager sharedManager] startMonitoring];
}
-(void)SSLCertificates{
    AFHTTPSessionManager *manager=[AFHTTPSessionManager manager];
    manager.securityPolicy.allowInvalidCertificates=YES;
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
 
@end

 

 

以上是关于AFNetworking 3.0.4 的使用的主要内容,如果未能解决你的问题,请参考以下文章

AFNetworking 请求失败并显示 -999 错误代码

学习总结AFNetworking源码阅读

iOS开发之AFNetworking 3.0使用总结

iOS开发之AFNetworking 3.0使用总结

iOS网络操作与AFNetworking

ios基础篇(三十)—— AFNetworking的使用