iOS 为支持ipv6 最新 AFNetWorking 3.0 数据请求基本使用。
2017-03-03 15:27
796 查看
常用的两种请求方式GET POST 1.requestURLString 请求网址 2.parameter POST请求参数
3.dic 为请求回来的数据
倒入头文件
#import "UIKit+AFNetworking.h"
#import "AFNetworking.h"
#pragma --mark GET请求方式
AFHTTPSessionManager *manager = [AFHTTPSessionManagermanager];
manager.responseSerializer = [AFHTTPResponseSerializerserializer];
[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
3.dic 为请求回来的数据
倒入头文件
#import "UIKit+AFNetworking.h"
#import "AFNetworking.h"
#pragma --mark GET请求方式
AFHTTPSessionManager *manager = [AFHTTPSessionManagermanager];
manager.responseSerializer = [AFHTTPResponseSerializerserializer];
[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使用AFNetworking请求回来的网络数据,不能显示中文, 新建一个分类解决。
- AFNetWorking 3.0请求返回NSData类型数据解决方案--iOS开发
- ios AFNetworking3.0 请求网络数据
- AFNetworking3.0使用 ,Post数据请求
- IOS开发中使用AFNetworking请求网络数据
- iOS AFNetworking3.0以上版本 基本使用
- AFNetworking框架的基本使用——GET、POST登录 、设置请求与响应的数据格式
- iOS---对AFNetworking进行二次封装,使用单例单独处理网络请求数据
- iOS 使用AFNetworking 3.0库进行网络请求时,取消单个队列和全部队列的方法(取消网络请求)
- 使用AFNetworking 2.0 请求数据时出现错误 Request failed: unacceptable content-type: XXXX 解决方法
- iOS开发网络数据之AFNetworking使用
- iOS开发网络数据之AFNetworking使用
- iOS开发网络数据之AFNetworking使用
- iOS开发网络数据之AFNetworking使用
- IOS开发之1-----copy语法的基本数据类型的使用01
- 使用AFNetworking 2.0 请求数据时出现错误 Request failed: unacceptable content-type错误解决方法
- iOS开发网络数据之AFNetworking使用 此博文包含图片
- My97日期控件3.0不支持IE8,4.2以上已经支持,强烈建议还在使用3.x的用户换成最新版
- IOS 构造和使用TableView(基于storyboard) (一)基本的数据显示
- iOS开发网络数据之AFNetworking使用