1. 程式人生 > >iOS開發-AFNetworking的基本使用

iOS開發-AFNetworking的基本使用

AFNetworking是一個非常方便的網路請求庫,可以輕鬆實現各種網路請求,比如經常使用的GET請求、POST請求,以及上傳多張圖片等,下面介紹一下基本的使用方法。
  • 首先下載AFNetworking 然後在需要使用的類中,匯入如下2個頭檔案:

#import "AFNetworking.h"//主要用於網路請求方法
#import "UIKit+AFNetworking.h"//裡面有非同步載入圖片的方法
  • GET請求網路資料方式:

-(void)obtainData
{
    // 啟動系統風火輪
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
        
    //前面寫伺服器給的域名,後面拼接上需要提交的引數,假如引數是key=1 
    NSString *domainStr = @"http://192.168.1.69/xffcol/index.php/Api/key/1/";

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    
    //以get的形式提交,只需要將上面的請求地址給GET做引數就可以
    [manager GET:domainStr parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
        // 隱藏系統風火輪
        [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
        
        //json解析
        NSDictionary *resultDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];

            NSLog(@"---獲取到的json格式的字典--%@",resultDic);
        
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
       
        // 解析失敗隱藏系統風火輪(可以列印error.userInfo檢視錯誤資訊)
        [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
        
    }];
}
  • POST請求網路資料方式:

-(void)obtainData
{
    // 啟動系統風火輪
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
        
    //伺服器給的域名  
    NSString *domainStr = @"http://192.168.1.69/xffcol/index.php/Api/";
    
    //假如需要提交給伺服器的引數是key=1,class_id=100
    //建立一個可變字典
    NSMutableDictionary *parametersDic = [NSMutableDictionary dictionary];
    //往字典裡面新增需要提交的引數
    [parametersDic setObject:@"1" forKey:@"key"];
    [parametersDic setObject:@"100" forKey:@"class_id"];
    
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    
    //以post的形式提交,POST的引數就是上面的域名,parameters的引數是一個字典型別,將上面的字典作為它的引數
    [manager POST:domainStr parameters:parametersDic success:^(AFHTTPRequestOperation *operation, id responseObject) {
        // 隱藏系統風火輪
        [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
        
        //json解析
        NSDictionary *resultDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];

            NSLog(@"---獲取到的json格式的字典--%@",resultDic);
        
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
       
        // 解析失敗隱藏系統風火輪(可以列印error.userInfo檢視錯誤資訊)
        [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
        
    }];
}
  • 實現上傳多張圖片:

-(void)uploadPictures{
    
    //域名
    NSString *domainStr = @"http://192.168.1.69/xffcol/index.php/Api/";
    
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    
    //如果還需要上傳其他的引數,參考上面的POST請求,建立一個可變字典,存入需要提交的引數內容,作為parameters的引數提交
    [manager POST:domainStr parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
     {
     //_imageArray就是圖片陣列,我的_imageArray裡面存的都是圖片的data,下面可以直接取出來使用,如果存的是image,將image轉換data的方法如下:NSData *imageData = UIImageJPEGRepresentation(image, 0.7);
         if (_imageArray.count > 0 ){
             for(int i = 0;i < _imageArray.count;i ++){
                 NSData *data=_imageArray[i];
                 //上傳的引數名
                 NSString *name = [NSString stringWithFormat:@"%d",i];
                 //上傳的filename
                 NSString *fileName = [NSString stringWithFormat:@"%@.jpg",name];
                 [formData appendPartWithFileData:data
                                             name:name
                                         fileName:fileName
                                         mimeType:@"image/jpeg"];
             }
         }
                  
     }success:^(AFHTTPRequestOperation *operation, id responseObject)
     {
         //關閉系統風火輪
         [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
         
         //json解析
         NSDictionary * resultDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];
         
             NSLog(@"---resultDic--%@",resultDic);
             
     }
          failure:^(AFHTTPRequestOperation *operation, NSError *error) {
              // 解析失敗
              [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;         
          }];
}
  • 設定網路圖片的方法:

[leftView setImageWithURL:[NSURL URLWithString:@"http://pic25.nipic.com/20121205/5955207_182136452000_2.jpg"] placeholderImage:@"這裡是網路圖片還沒加載出來的時候,顯示的預設圖片"];

相關推薦

iOS開發-AFNetworking基本使用

AFNetworking是一個非常方便的網路請求庫,可以輕鬆實現各種網路請求,比如經常使用的GET請求、POST請求,以及上傳多張圖片等,下面介紹一下基本的使用方法。 首先下載AFNetworking 然後在需要使用的類中,匯入如下2個頭檔案: #import "AFNe

iOS開發-AFNetworking封裝Get(自定義HTTP Header)和Post請求及文件下載

謝謝 filepath pos cat style -type poe repo eth 前面提到AFNetworking是一個很強大的網絡三方庫,首先你需要引入AFNetworking三方庫;如封裝的有誤還請指出,謝謝! 1.Get請求 /**Get請求 url 服務器

關於IOS開發基本書籍推薦

1.Sams Teach Yourself iOS 5 Application Development in 24 Hours&amp;lt;img src=&quot;https://pic4.zhimg.com/580c76ae0809f0f2feaaebd816129d9f_b.jpg&

iOS開發-登錄界面開發(4)AFNetworking的引入-Swfit4.1_Xcode9.3.1

pre 地址 保存 nts install 添加 相關 新版 一個 1.AFNetworking是個啥?   網絡請求開源框架, iOS和Mac OS都能用。 2.SwiftyJSON是個啥?   另一個開源框架,處理JSON數據(解析數據、生成數據)。 3.讓我們

iOS開發·runtime原理新葡京網站開發與實踐: 基本知識篇

方法 流程 oot 發的 以及 soc 實例方法 desc 描述 運行時新葡京網站開發 haozbbs.com Q1446595067 1.1 基本概念: 運行時 Runtime 的概念 Runtime 又叫運行時,是一套底層的 C 語言 API,其為 iOS 內部的核心

iOS開發UI篇—UITableview控件基本使用

ade scl table itl 示例 spa ces LEDE file iOS開發UI篇—UITableview控件基本使用 一、一個簡單的英雄展示程序 NJHero.h文件代碼(字典轉模型) #import <Foundation/Foundation.h

iOS開發知識之:AFNetworking提交陣列引數

今天突然有個介面需要傳陣列引數,以前沒用過,直接傳,傳過去的格式都不對,將陣列引數變成json字串發過去又有轉義斜槓,於是各種查,最後通過2個別人寫的文章,湊在一起,可以了。 以下是方案: 1、就找到AFURLRequestSerialization.m的AFQueryStringPairsFr

iOS開發之wkwebview與AFNetworking共享cookie

一般在web與js的互動中想再post時需要拿到web裡的使用者資訊,登入狀態等,需要傳遞web的cooki wk設定–>wk獲取–>儲存–>af取–>af設定 wkwebview的處理 WKWebViewConfigura

iOS開發UI之UIButton的基本使用

一. 繼承關係: UIButton --> UIControl --> UIView 二. 什麼是按鈕 UIButton既能顯示文字,又能顯示圖片,還能隨時調整內部圖片和文字的位置 三. UIButton的狀態 UIControlStateN

iOS開發之關於CocoaPods一些基本錯誤

1.在我們替換ruby源時提示: bogon:~ Simona $ gem sources -a http://gems.ruby-china.org/ Error fetching http://gems.ruby-china.org/: SSL_conne

iOS開發-多執行緒NSThread的基本介紹和使用

今天給同學講解一下多執行緒的入門瞭解和使用那麼廢話不多說直接上程式碼~ NSThread建立和啟動執行緒 NSThread其他用法 其他建立執行緒方式 執行緒的狀態介紹 控制執行緒狀態 多執行緒的安全

iOS開發網路資料之AFNetworking使用

如何選擇AFNetworking版本 官網下載2.5版本:http://afnetworking.com/ 此文章基於AFNetworking2.0,如果您使用的是2.5版本的,請看這篇文章:AFNetworking2.5使用 首先得下載AFNetworking庫檔案,下載

iOS開發:對於AFNetworking HTTP轉HTTPS請求證書問題

轉載至:http://www.jianshu.com/p/551fa7482def 公司之前的請求都是HTTP的,現在要把HTTP改成HTTPS,如果我們只是單單的把http改成https,在進行網路請求的時候,會報下面的一大堆錯誤,大概意思也就是說證書無效,影響請求的安

iOS開發-登入介面開發(4)AFNetworking的引入-Swfit4.1_Xcode9.3.1

1.AFNetworking是個啥?  網路請求開源框架, iOS和Mac OS都能用。2.SwiftyJSON是個啥?  另一個開源框架,處理JSON資料(解析資料、生成資料)。3.讓我們來引入AFNetworking、SwiftyJSON:  3.1.找到你專案的地址:(

iOS開發——圖形程式設計OC篇&(一)CALayer介紹與基本使用

在iOS中,你能看得見摸得著的東西基本上都是UIView,比如一個按鈕、一個文字標籤、一個文字輸入框、一個圖示等等,這些都是UIView。 其實UIView之所以能顯示在螢幕上,完全是因為它內部的一個圖層,在建立UIView物件時,UIView內部會自動建立一個圖層(即CALayer物件),通過UIVi

iOS開發中利用AFNetworking進行斷點下載

在iOS開發中我們如果要下載一個大的檔案可能會有斷點下載的需求即能夠對下載任務進行暫停,之後再開始下載任務,下面即將給出利用AFNetworking進行斷點下載的程式碼。核心思想:將下載的檔案的長度記

iOSAFNetworking基本原理

AFNetworking由五個模組組成:分別由NSURLSession,Security,Reachability,Serialization,UIKit五部分組成NSURLSession:網路通訊模組(核心模組) 對應 AFNetworking中的 AFURLSessionManager和對HTTP協議進行

iOS開發——Reachability和AFNetworking判斷網路連線狀態

一、Reachability // 監聽網路狀態改變的通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotifi

iOS開發多線程篇—GCD的基本使用

@property 函數 特殊 sig 屏幕 select 獲取 nba ike 一、主隊列介紹 主隊列:是和主線程相關聯的隊列,主隊列是GCD自帶的一種特殊的串行隊列,放在主隊列中得任務,都會放到主線程中執行。 提示:如果把任務放到主隊列中進行處理,那

iOS開發UI篇—Quartz2D使用(繪制基本圖形)

esper control del creat col cal end layer bubuko 一、簡單說明 圖形上下文(Graphics Context):是一個CGContextRef類型的數據 圖形上下文的作用:保存繪圖信息、繪圖狀態 決定繪制的輸出目標(繪制到什麽