16-AFNetworking
来源:互联网 发布:linux 当前文件夹大小 编辑:程序博客网 时间:2024/04/28 02:49
一、GET和POST请求数据
//GET请求
- (IBAction)get:(id)sender {
//1.创建管理对象
AFHTTPSessionManager*manager = [AFHTTPSessionManagermanager];
//2.URL
NSString*url =@"http://piao.163.com/m/cinema/list.html?app_id=1&mobileType=iPhone&ver=2.6&channel=appstore&deviceId=9E89CB6D-A62F-438C-8010-19278D46A8A6&apiVer=6&city=110000";
//3.设置请求参数类型
/*
&拼接:AFHTTPRequestSerializer:key1=value1&key2=value2
JSON数据:AFJSONRequestSerializer
*/
manager.requestSerializer= [AFHTTPRequestSerializerserializer];
//4.设置响应数据类型
/*
AFJSONResponseSerializer:返回的数据是JSON格式,默认就是JSON格式
AFXMLParserResponseSerializer:返回的数据是XML格式
AFHTTPResponseSerializer:不解析
AFImageResponseSerializer:图片数据
*/
manager.responseSerializer= [AFJSONResponseSerializerserializer];
//5.发送请求
[manager GET:urlparameters:nilsuccess:^(NSURLSessionDataTask*task,id responseObject) {
self.testView.text= [NSStringstringWithFormat:@"%@", responseObject];
} failure:^(NSURLSessionDataTask*task,NSError *error) {
NSLog(@"%@", error);
}];
}
- (IBAction)get:(id)sender {
//1.创建管理对象
AFHTTPSessionManager*manager = [AFHTTPSessionManagermanager];
//2.URL
NSString*url =@"http://piao.163.com/m/cinema/list.html?app_id=1&mobileType=iPhone&ver=2.6&channel=appstore&deviceId=9E89CB6D-A62F-438C-8010-19278D46A8A6&apiVer=6&city=110000";
//3.设置请求参数类型
/*
&拼接:AFHTTPRequestSerializer:key1=value1&key2=value2
JSON数据:AFJSONRequestSerializer
*/
manager.requestSerializer= [AFHTTPRequestSerializerserializer];
//4.设置响应数据类型
/*
AFJSONResponseSerializer:返回的数据是JSON格式,默认就是JSON格式
AFXMLParserResponseSerializer:返回的数据是XML格式
AFHTTPResponseSerializer:不解析
AFImageResponseSerializer:图片数据
*/
manager.responseSerializer= [AFJSONResponseSerializerserializer];
//5.发送请求
[manager GET:urlparameters:nilsuccess:^(NSURLSessionDataTask*task,id responseObject) {
self.testView.text= [NSStringstringWithFormat:@"%@", responseObject];
} failure:^(NSURLSessionDataTask*task,NSError *error) {
NSLog(@"%@", error);
}];
}
----------------------------------------------------------------------------------------------------
//POST请求
- (IBAction)post:(id)sender {
//1.创建管理对象
AFHTTPSessionManager*manager = [AFHTTPSessionManagermanager];
//2.字符串URL
NSString*url =@"http://piao.163.com/m/movie/detail.html?app_id=1&mobileType=iPhone&ver=2.6&channel=appstore&deviceId=9E89CB6D-A62F-438C-8010-19278D46A8A6&apiVer=6&city=110000";
//3.设置请求类型
manager.requestSerializer= [AFHTTPRequestSerializerserializer];
//4.设置响应数据类型
manager.responseSerializer= [AFJSONResponseSerializerserializer];
//5.发送请求
//设置请求体
NSDictionary*dict =@{
@"movie_id":@"43485"
};
[manager POST:urlparameters:dictsuccess:^(NSURLSessionDataTask*task,id responseObject) {
self.testView.text= [NSStringstringWithFormat:@"%@", responseObject];
} failure:^(NSURLSessionDataTask*task,NSError *error) {
NSLog(@"%@", error);
}];
- (IBAction)post:(id)sender {
//1.创建管理对象
AFHTTPSessionManager*manager = [AFHTTPSessionManagermanager];
//2.字符串URL
NSString*url =@"http://piao.163.com/m/movie/detail.html?app_id=1&mobileType=iPhone&ver=2.6&channel=appstore&deviceId=9E89CB6D-A62F-438C-8010-19278D46A8A6&apiVer=6&city=110000";
//3.设置请求类型
manager.requestSerializer= [AFHTTPRequestSerializerserializer];
//4.设置响应数据类型
manager.responseSerializer= [AFJSONResponseSerializerserializer];
//5.发送请求
//设置请求体
NSDictionary*dict =@{
@"movie_id":@"43485"
};
[manager POST:urlparameters:dictsuccess:^(NSURLSessionDataTask*task,id responseObject) {
self.testView.text= [NSStringstringWithFormat:@"%@", responseObject];
} failure:^(NSURLSessionDataTask*task,NSError *error) {
NSLog(@"%@", error);
}];
}
二、下载
//下载
- (IBAction)downLoad:(id)sender {
// 1.创建URL对象
NSURL *url = [NSURLURLWithString:@"http://sc.111ttt.com/up/mp3/304296/937161E63A1D57484158C7464D7B50B7.mp3"];
// 2.创建请求对象
NSMutableURLRequest*request = [NSMutableURLRequestrequestWithURL:url];
// 3.创建管理对象
AFHTTPSessionManager*manager = [AFHTTPSessionManagermanager];
// 4.创建请求任务
- (IBAction)downLoad:(id)sender {
// 1.创建URL对象
NSURL *url = [NSURLURLWithString:@"http://sc.111ttt.com/up/mp3/304296/937161E63A1D57484158C7464D7B50B7.mp3"];
// 2.创建请求对象
NSMutableURLRequest*request = [NSMutableURLRequestrequestWithURL:url];
// 3.创建管理对象
AFHTTPSessionManager*manager = [AFHTTPSessionManagermanager];
// 4.创建请求任务
----------------------------------------------------------------------------------------------------
// (1)声明进度变量
NSProgress*progress =nil;
// (2)请求任务
NSURLSessionDownloadTask*task = [managerdownloadTaskWithRequest:requestprogress:&progressdestination:^NSURL*(NSURL*targetPath,NSURLResponse *response) {
// 动态获取Document目录
NSString*doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)lastObject];
// 返回我们要放到的路径
NSProgress*progress =nil;
// (2)请求任务
NSURLSessionDownloadTask*task = [managerdownloadTaskWithRequest:requestprogress:&progressdestination:^NSURL*(NSURL*targetPath,NSURLResponse *response) {
// 动态获取Document目录
NSString*doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)lastObject];
// 返回我们要放到的路径
return [NSURL fileURLWithPath:[NSStringstringWithFormat:@"%@music.mp3", doc]];
} completionHandler:^(NSURLResponse*response,NSURL *filePath, NSError*error) {
NSLog(@"%@", filePath);
}];
----------------------------------------------------------------------------------------------------
// 5.开始任务
[task resume];
// 6.给progress添加监听 观察新值变化
[progress addObserver:selfforKeyPath:NSStringFromSelector(@selector(fractionCompleted))options:NSKeyValueObservingOptionNewcontext:nil];
}
// 7.触发监听事件
- (void)observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void*)context
{
// 取出字典里变化的新值
NSNumber*new = change[@"new"];
CGFloat value = [new floatValue];
// 回主队列刷新UI
dispatch_async(dispatch_get_main_queue(), ^{
self.progress.progress= value;
});
[task resume];
// 6.给progress添加监听 观察新值变化
[progress addObserver:selfforKeyPath:NSStringFromSelector(@selector(fractionCompleted))options:NSKeyValueObservingOptionNewcontext:nil];
}
// 7.触发监听事件
- (void)observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void*)context
{
// 取出字典里变化的新值
NSNumber*new = change[@"new"];
CGFloat value = [new floatValue];
// 回主队列刷新UI
dispatch_async(dispatch_get_main_queue(), ^{
self.progress.progress= value;
});
}
更多用法请跳转:http://blog.csdn.net/gaojq_ios/article/details/46844325
0 0
- 16-AFNetworking
- AFNetworking
- AFNetworking
- AFNetworking
- AFNetworking
- AFNetworking
- AFNetworking
- AFNetworking
- AFNetworking
- AFNetworking
- afnetworking
- AFNetworking
- AFNetworking
- AFNetworking
- AFNetworking
- AFNetWorking
- AFNetworking
- AFNetworking
- 友元函数 和 友元类 讲解和使用
- csharp: Data binding in WPF DataGrid control
- 隐藏注解里的http方法过滤器
- HDU 1754
- 百度地图API
- 16-AFNetworking
- pthread_mutexattr_init
- linux的netstat命令
- 从程序角度分析mapreduce原理与代码
- [leetcode] Reverse Linked List II
- Oracle Hint的用法
- 17- 注册和刷新验证码
- 关键的问题是,我是谁?
- Java读取json文件并对json数据进行读取、添加、删除与修改操作