1. 程式人生 > >iOS 為支援ipv6 最新 AFNetWorking 3.0 資料請求基本使用。

iOS 為支援ipv6 最新 AFNetWorking 3.0 資料請求基本使用。

常用的兩種請求方式GET POST      1.requestURLString 請求網址  2.parameter  POST請求引數  3.dic 為請求回來的資料

倒入標頭檔案

#import "UIKit+AFNetworking.h"

#import "AFNetworking.h"

#pragma --mark GET請求方式

AFHTTPSessionManager *manager = [AFHTTPSessionManagermanager];

        manager.responseSerializer = [AFHTTPResponseSerializer

serializer];

        [manager GET:requestURLStringparameters:nilprogress:^(NSProgress *_Nonnull downloadProgress) {

        }success:^(NSURLSessionDataTask *_Nonnull task,id_Nullable responseObject) {

NSDictionary *dic = [NSJSONSerializationJSONObjectWithData:responseObject

options:NSJSONReadingAllowFragments

error:nil];

DDLog(@"%@", dic);

            block(dic);

         }

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

           failureBlock();

        }];

#pragma --mark POST請求方式

AFHTTPSessionManager *manager = [AFHTTPSessionManagermanager];

    manager.responseSerializer

= [AFHTTPResponseSerializerserializer];

    [manager POST:requestURLStringparameters:parameterprogress:^(NSProgress *_Nonnull uploadProgress) {

    } success:^(NSURLSessionDataTask *_Nonnull task,id_Nullable responseObject) {

NSDictionary *dic = [NSJSONSerializationJSONObjectWithData:responseObject

options:NSJSONReadingAllowFragments

error:nil];

DDLog(@"%@", dic);

        block(dic);

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

         failureBlock();

    }];

}

=================================================================================

程式碼寫完以後:我們還要在修改一個類才可以支援ipv6

這個類:AFNetworkReachabilityManager

.h檔案更改之前:

+ (instancetype)managerForAddress:(constvoid *)address;

改成:

+ (instancetype)managerForAddress:(conststructsockaddr_in6*)address;

接下來更改.m檔案

更改之前:

+ (instancetype)managerForAddress:(constvoid *)address {

SCNetworkReachabilityRef reachability =SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (conststructsockaddr *)address);

AFNetworkReachabilityManager *manager = [[selfalloc]initWithReachability:reachability];

return manager;

}

更改之後:

+ (instancetype)managerForAddress:(conststructsockaddr_in6*)address {

SCNetworkReachabilityRef reachability =SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (conststructsockaddr *)address);

AFNetworkReachabilityManager *manager = [[selfalloc]initWithReachability:reachability];

CFRelease(reachability);

return manager;

}

還有一處:

更改之前:

+ (instancetype)sharedManager {

staticAFNetworkReachabilityManager *_sharedManager =nil;

staticdispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

        _sharedManager = [selfmanager];

    });

return _sharedManager;

}

更改之後:

+ (instancetype)sharedManager {

staticAFNetworkReachabilityManager*_sharedManager =nil;

staticdispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

structsockaddr_in6 address;

bzero(&address,sizeof(address));

        address.sin6_len=sizeof(address);

        address.sin6_family=AF_INET6;

        _sharedManager = [selfmanagerForAddress:&address];

    });

return _sharedManager;

}

改完這些基本就可以實現支援ipv6. AFNetWorking 3.0  下載地址: http://download.csdn.net/detail/wangqinglei0307/9769510

更改以後的地址:

http://download.csdn.net/download/wangqinglei0307/9846428

相關推薦

iOS 支援ipv6 最新 AFNetWorking 3.0 資料請求基本使用

常用的兩種請求方式GET POST      1.requestURLString 請求網址  2.parameter  POST請求引數  3.dic 為請求回來的資料 倒入標頭檔案 #import "UIKit+AFNetworking.h" #import

iOS上傳檔案或base64(圖片)之AFNetworking 3.0+上傳檔案上傳圖片

1. base64 上傳圖片 /**  *  上傳圖片到伺服器  *  *  @param image  *  @param photoID  *  @param photoType  */ - (

iOS-AFNetworking 2.0AFNetworking 3.0 區別及具體用法

在AFNetworking 3.0之前,底層是通過封裝NSURLConnection來實現的。 在AFNetworking 3.0之後,也就是在iOS 9.0 之後,NSURLConnection被棄用,蘋果推薦使用NSURLSession來管理網路請求,所

iOS 11下AFNetworking 3.0的AFSecurityPolicy配置

WWDC大會剛開過,我就升級了手機系統(我的iPhone是15年購買的6 Plus),iOS 11的beta版真特麼卡,建議7以下的手機不要升級了。 手機升級了,那麼開發者工具Xcoder也需要升級才

iOS開發之AFNetworking 3.0.4使用

部落格遷移到簡書一來,一直沒有時間來寫部落格了,以前的也沒有整理,這個算是簡書上的第一個部落格吧!以後有時間還是得把以前的遷移過來,畢竟都是心血啊,也有轉載的很多大神們的技術文章,捨不得丟棄呀。。。 昨天使用Cocoapods匯入AFN做POST的時候,匯入的最新版的3

AFNetworking 3.0 使用詳解 和 源碼解析實現原理

數據 syn ria 特定 style conn afn rda gre AFN原理&& AFN如何使用RunLoop來實現的: NSString * requestURL = @"http://119.254.98.136/api/v1/web/

AFNetworking 3.0遷移中不可忽略的要點

AFNetworking是一款在OS X和iOS下都令人喜愛的網路庫。為了迎合iOS新版本的升級, AFNetworking在3.0版本中刪除了基於 NSURLConnection API的所有支援。如果你的專案以前使用過這些API,建議您立即升級到基於 NSURLSession 的API的AFN

AFNetWorking 3.0 使用遇到的問題

問題一 我是做一個獲取手機驗證碼的功能,進行一個網路請求,驗證碼也發給我了,後臺的也跟我說請求成功了,但是我這邊列印資訊顯示直接進入了錯誤的回撥。。。如下圖: 驗證碼獲取返回格式問題 報錯說是返回型別不一致,後來查明原因,是返回的格式問題(雖

AFNetworking 3.0 解決加密後請求引數是字串問題

把整個請求引數的json加密生成一個字串傳給伺服器,錯誤提示:[NSJSONSerialization dataWithJSONObject:options:error:]: Invalid top-level type in JSON write'; 因為請求引數不是字典、陣列、集合...等,

AFNetWorking(3.0)原始碼分析(五)——AFHTTPRequestSerializer & AFHTTPResponseSerializer

在前面的幾篇部落格中,我們分析了AFURLSessionMangerd以及它的子類AFHTTPSessionManager。我們對AF的主要兩個類,有了一個比較全面的瞭解。 對於AFHTTPSessionManager,當其在要傳送請求時,會呼叫AFHTTPRequestSerial

AFNetWorking(3.0)原始碼分析(四)——AFHTTPSessionManager(2)

在上一篇部落格中,我們分析了AFHTTPSessionManager,以及它是如何實現GET/HEAD/PATCH/DELETE相關介面的。 我們還剩下POST相關介面沒有分析,在這篇部落格裡面,我們就來分析一下POST相關介面是如何實現的。 multipart/form-data請

AFNetworking 3.0另類的總結

AFNetworking 早已進入了3.0的時代,絕大多數的APP現在都拿3.0的版本來搞一搞,3.0與2.0的區別我這裡就不扯犢子了 。。。。。扯了也白扯,今天總結下幾個另類的冷知識 1.AFNetworking 請求方式 請求方式這個需

關於IOS必須支援ipv6網路的爬坑經歷

前不久,ios稽核規定,APP一定要在ipv6的網路上執行才能通過稽核。(以本人多年的開發經驗,已經預想到前方必定有大坑!!)   於是查了一下ipv6的定義:    什麼是IPv6?    

AFNetworking 3.0遷移指南

AFNetworking 3.0 AFNetworking是一款在OS X和iOS下都令人喜愛的網路庫。為了迎合iOS新版本的升級, AFNetworking在3.0版本中刪除了基於 NSURLConnection API的所有支援。如果你的專案以前使用過這些API,建

iOS應用支援IPV6,就那點事兒

果然是蘋果打個哈欠,iOS行業內就得起一次風暴呀。自從5月初Apple明文規定所有開發者在6月1號以後提交新版本需要支援IPV6-Only的網路,大家便開始熱火朝天的研究如何支援IPV6,以及應用中哪些模組目前不支援IPV6。 一、IPV6-Only支援是啥? 首

iOS App支援IPv6-only Network中的坑和解決方案

從2016年6月1號開始,蘋果強制要求上架AppStore的應用支援IPv6-only network。 本文分為兩部分:通過程式碼檢查是否相容IPv6-only網路,以及如何搭建IPv6-only網路的測試環境。旨在幫助快速檢查app是否支援IPv6-only Netw

AFNetworking 3.0+ 啟用完整、嚴格的https證書較驗參考程式碼

// 1.初始化單例類      AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];     manager.securityPolicy.SSLPinningMode = AFSSLPinningM

使用AFNetworking 3.0庫進行網路請求時,取消單個佇列和全部佇列的方法(取消網路請求)

        專案中有時會有這種情況,當介面正在請求資料,但資料為返回之前。返回到上一個介面,這種情況下,應取消此介面的網路請求。此篇就是為了處理此種情況下的操作,可        以取消單個請求佇

2.6 使用for迴圈遍歷檔案 2.7 使用while迴圈遍歷檔案 2.8 統計系統剩餘的記憶體 2.9 資料型別轉換計算(計算mac地址) 3.0 資料型別轉換(列表與字典相互轉換)

2.6 使用for迴圈遍歷檔案 open r:以只讀方式開啟 w: 以寫方式開啟 a: 以追加模式開啟 r+: 以讀寫模式開啟 w+: 以讀寫模式開啟(參見w) a+: 以讀寫模式開啟(參見a) rb: 以二進位制模式開啟 read 我們先寫一個檔案,叫1.txt 內容如下 111 22

xUtils更新到3.0後的基本使用規則

說實話,對於xUtils,是我最近才用到的開發框架(也是剛接觸),對於其功能不得不說,簡化了很多的開發步驟,可以說是非常好的開發工具,但是其最近更新到3.0也沒有解決載入自定義ImageView報錯的問題。我總是喜歡用一些最新的東西,xUtils 3.0才剛更新,是一次比較大