iOS開發(fā)之AFNetworking 3.0.4使用

GET請求

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

[manager GET:URL parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {

}

success:^(NSURLSessionDataTask * _Nonnull task, id? _Nullable responseObject) {

NSLog(@"這里打印請求成功要做的事");

}

failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull? error) {

NSLog(@"%@",error);? //這里打印錯(cuò)誤信息

}];

POST 請求

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

NSMutableDictionary *parameters = @{@"":@"",@"":@""};

[manager POST:URL parameters:parameters progress:^(NSProgress * _Nonnull uploadProgress) {

} success:^(NSURLSessionDataTask * _Nonnull task, id? _Nullable responseObject) {

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

}];

AFN3.0下載方法

/**

*? AFN3.0 下載

*/

- (void)downLoad{

//1.創(chuàng)建管理者對象

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

//2.確定請求的URL地址

NSURL *url = [NSURL URLWithString:@""];

//3.創(chuàng)建請求對象

NSURLRequest *request = [NSURLRequest requestWithURL:url];

//下載任務(wù)

NSURLSessionDownloadTask *task = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) {

//打印下下載進(jìn)度

WKNSLog(@"%lf",1.0 * downloadProgress.completedUnitCount / downloadProgress.totalUnitCount);

} destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {

//下載地址

WKNSLog(@"默認(rèn)下載地址:%@",targetPath);

//設(shè)置下載路徑,通過沙盒獲取緩存地址,最后返回NSURL對象

NSString *filePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject];

return [NSURL fileURLWithPath:filePath];

} completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {

//下載完成調(diào)用的方法

WKNSLog(@"下載完成:");

WKNSLog(@"%@--%@",response,filePath);

}];

//開始啟動(dòng)任務(wù)

[task resume];

}

AFN3.0 上傳


//第一種方法是通過工程中的文件進(jìn)行上傳

- (void)upLoad1{? ?

?//1。創(chuàng)建管理者對象? ??

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];? ??

//2.上傳文件??

? NSDictionary *dict = @{@"username":@"1234"};??

? NSString *urlString = @"22222";? ?

?[manager POST:urlString parameters:dict constructingBodyWithBlock:^(id_Nonnull formData) {

//上傳文件參數(shù)

UIImage *iamge = [UIImage imageNamed:@"123.png"];

NSData *data = UIImagePNGRepresentation(iamge);

//這個(gè)就是參數(shù)

[formData appendPartWithFileData:data name:@"file" fileName:@"123.png" mimeType:@"image/png"];

} progress:^(NSProgress * _Nonnull uploadProgress) {

//打印下上傳進(jìn)度

WKNSLog(@"%lf",1.0 *uploadProgress.completedUnitCount / uploadProgress.totalUnitCount);

} success:^(NSURLSessionDataTask * _Nonnull task, id? _Nullable responseObject) {

//請求成功

WKNSLog(@"請求成功:%@",responseObject);

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

//請求失敗

WKNSLog(@"請求失敗:%@",error);

}];

}

//第二種是通過URL來獲取路徑,進(jìn)入沙盒或者系統(tǒng)相冊等等

- (void)upLoda2{?

?? //1.創(chuàng)建管理者對象? ?

?AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];? ?

?//2.上傳文件??

? NSDictionary *dict = @{@"username":@"1234"};? ??

NSString *urlString = @"22222";??

? [manager POST:urlString parameters:dict constructingBodyWithBlock:^(id_Nonnull formData) {

[formData appendPartWithFileURL:[NSURL fileURLWithPath:@"文件地址"] name:@"file" fileName:@"1234.png" mimeType:@"application/octet-stream" error:nil];

} progress:^(NSProgress * _Nonnull uploadProgress) {

//打印下上傳進(jìn)度

WKNSLog(@"%lf",1.0 *uploadProgress.completedUnitCount / uploadProgress.totalUnitCount);

} success:^(NSURLSessionDataTask * _Nonnull task, id? _Nullable responseObject) {

//請求成功

WKNSLog(@"請求成功:%@",responseObject);

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

//請求失敗

WKNSLog(@"請求失?。?@",error);

}];

}

監(jiān)測當(dāng)前網(wǎng)絡(luò)狀態(tài)(網(wǎng)絡(luò)監(jiān)聽)

- (void)AFNetworkStatus{

//1.創(chuàng)建網(wǎng)絡(luò)監(jiān)測者

AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];

/* 枚舉里面四個(gè)狀態(tài)? 分別對應(yīng) 未知 無網(wǎng)絡(luò) 數(shù)據(jù) WiFi

typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) {

AFNetworkReachabilityStatusUnknown? ? ? ? ? = -1,? ? ? 未知

AFNetworkReachabilityStatusNotReachable? ? = 0,? ? ? 無網(wǎng)絡(luò)

AFNetworkReachabilityStatusReachableViaWWAN = 1,? ? ? 蜂窩數(shù)據(jù)網(wǎng)絡(luò)

AFNetworkReachabilityStatusReachableViaWiFi = 2,? ? ? WiFi

}; ?*/

[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {

//這里是監(jiān)測到網(wǎng)絡(luò)改變的block? 可以寫成switch方便

//在里面可以隨便寫事件

switch (status) {

case AFNetworkReachabilityStatusUnknown:

WKNSLog(@"未知網(wǎng)絡(luò)狀態(tài)");

break;

case AFNetworkReachabilityStatusNotReachable:

WKNSLog(@"無網(wǎng)絡(luò)");

break;

case AFNetworkReachabilityStatusReachableViaWWAN:

WKNSLog(@"蜂窩數(shù)據(jù)網(wǎng)");

break;

case AFNetworkReachabilityStatusReachableViaWiFi:

WKNSLog(@"WiFi網(wǎng)絡(luò)");

break;

default:

break;

}

}] ;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容