AFNetworking3.0网络请求
来源:互联网 发布:sql loop循环 编辑:程序博客网 时间:2024/06/05 02:10
#import <Foundation/Foundation.h>
#import "AFNetworking.h"
typedefvoid(^CompletionLoad)(id result);
@interface DataService :NSObject
//AFNetworking 3.0
+ (void)requestWithURL:(NSString *)url
params:(NSMutableDictionary *)params
httpMethod:(NSString *)httpMethod
block:(CompletionLoad)block;
@implementation DataService
//AFNetworking 3.0
+ (void)requestWithURL:(NSString *)url
params:(NSMutableDictionary *)params
httpMethod:(NSString *)httpMethod
block:(CompletionLoad)block{
NSMutableString *urlStr = [NSMutableStringstringWithFormat:@"%@%@",@"基类URLStr",url];
// 初始化Manager
AFHTTPSessionManager *manager = [AFHTTPSessionManagermanager];
// 不加上这句话,会报“Request failed: unacceptable content-type: text/plain”错误,因为我们要获取text/plain类型数据
manager.responseSerializer = [AFHTTPResponseSerializerserializer];
manager.requestSerializer.timeoutInterval =10;
if ([httpMethod isEqualToString:@"GET"]) { // 如果是get请求
// Get请求
[managerGET:urlStr parameters:paramsprogress:^(NSProgress *_Nonnull downloadProgress) {
//这里可以获取到目前的数据请求的进度
}success:^(NSURLSessionDataTask *_Nonnull task, id _Nullable responseObject) {
// 请求成功,解析数据 NSLog(@"%@", responseObject);
NSDictionary *dic = [NSJSONSerializationJSONObjectWithData:responseObject options:NSJSONReadingMutableContainers |NSJSONReadingMutableLeaves error:nil];
if (block) {
block(dic);
}
}failure:^(NSURLSessionDataTask *_Nullable task, NSError *_Nonnull error) {
// 请求失败
if (block) {//NSLog(@"%@", [error localizedDescription]);
block(error);
}
}];
}elseif ([httpMethod isEqualToString:@"POST"]) {
// post请求
[managerPOST:urlStr parameters:paramsprogress:^(NSProgress *_Nonnull uploadProgress) {
}success:^(NSURLSessionDataTask *_Nonnull task, id _Nullable responseObject) {
//NSLog(@"%@",responseObject);
NSDictionary *dic = [NSJSONSerializationJSONObjectWithData:responseObject options:NSJSONReadingMutableContainers |NSJSONReadingMutableLeaves error:nil];
if (block) {
block(dic);
}
}failure:^(NSURLSessionDataTask *_Nullable task, NSError *_Nonnull error) {
// 请求失败
if (block) {//NSLog(@"%@", [error localizedDescription]);
block(error);
}
}];
//使用下面这个方法时候 参数传不到服务器,会显示参数错误
// [manager POST:urlStr parameters:dic constructingBodyWithBlock:^(id _Nonnull formData) {
// // 拼接data到请求体,这个block的参数是遵守AFMultipartFormData协议的。
//
// } progress:^(NSProgress * _Nonnull uploadProgress) {
// // 这里可以获取到目前的数据请求的进度
//
// } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
// // 请求成功,解析数据NSLog(@"%@", responseObject);
// NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];
// if (block) {
// block(dic);
// }
//
// } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
// // 请求失败
// if (block) {//NSLog(@"%@", [error localizedDescription]);
// block(error);
// }
// }];
}
}
在WWDC2015上苹果宣布iOS9将支持纯IPv6的网络服务。2016年初开始所有提交到App Store的应用必须支持IPv6。为确保现有的应用是兼容的,我们需要注意下面几点。
最后我们来搭一个IPv6的测试环境吧,你所需要的就是一台用非Wi-Fi的方式上网的Mac电脑。
我们的要做的其实就是用Mac做一个热点,然后用iPhone连接这个Wi-Fi,听起来很容易,我相信大家在公司就是这么干的吧。
区别是这次我们产生的是一个本地的IPv6 DNS64/NAT64网络,这项功能是OS X 10.11新加的。和我们以前开启热点方式不一样的地方在于,我们在“System Preferences”界面选中“Sharing”的同时,要按住“Option”键。
之后在“Sharing”界面中,我们会看到和之前不一样的地方,就是红框所标的地方,多了一个叫“Create NAT64 Network”的选框,选中它。
现在我们用iPhone连接上这个刚创建好的热点就可以测试了,注意此时要把iPhone设成飞行模式,以保证只用Wi-Fi上网。
- AFNetworking3.0网络请求
- AFnetworking3.0的网络请求
- 用AFNetworking3.0封装网络请求
- 用AFNetworking3.0封装网络请求
- AFNetworking3.0 如何取消单个网络请求
- 网络请求-AFNetworking3.0使用简介
- 用AFNetworking3.0封装网络请求
- 使用AFNetworking3.0封装网络请求
- ios中afnetworking3.0网络请求
- ios AFNetworking3.0 请求网络数据
- AFNetworking3.0 POST请求
- AFNetworking3.0网络请求方法封装(自带缓存功能)
- AFNetworking3.0网络请求方法封装(自带缓存功能)
- AFNetworking3.0网络请求方法封装(自带缓存功能)
- IOS AFNetworking3.0 SDImage 网络请求和图片加载
- AFNetWorking3.0 实现同步请求
- iOS 开发 AFNetworking3.0源码解析(一:结构图/网络请求三次封装/上传下载/网络监测)
- 基于AFNetworking3.0网络封装
- C#中制作启动窗体的方法和问题
- 用AOPR试用版能破解几位密码
- struct和typedef struct
- Android开发之 选择相册图片或者拍照
- iOS开发中可能会用到的一些函数。。。
- AFNetworking3.0网络请求
- maven使用别人写好的jar
- java泛型(一)、泛型的基本介绍和使用
- 视频相关概念
- 山东多校联合模拟赛 Day1第一题
- Incompatible integer to pointer conversion assigning to 'NSInteger *' (aka 'long *') from 'int'
- LuaJavaBridge - Lua 与 Java 互操作的简单解决方案(对于QUICK-COCOS开发者是很好的文章)
- MySQL的多列索引
- 协同过滤推荐算法的原理及实现