ios开发 -- AFNetworking用法
2015-09-28 16:37
441 查看
网络请求一般用到的第三方框架是AFN。关于AFN主要以下用法:
1.get请求
请求网络数据使用git方法,使用方法如下:
//请求管理器
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager
manager];
//
格式 json
NSDictionary *dict =
@{@"format":
@"json"};
//发起请求
[manager
GET:@"http://115.28.240.82:7990/report/v02/init/3"
parameters:dict success:^(AFHTTPRequestOperation *operation,id responseObject){
if ([responseObject
isKindOfClass:[NSDictionary
class]]) {
//根据接口的实际内容取数据,字典或者数组
}
}
failure:^(AFHTTPRequestOperation *operation,NSError *error){
NSLog(@"%@",error);
}];
2.post请求
先写一个系统自带的方法,如下:
//设置路径
NSURL *url = [NSURL
URLWithString:@"http://115.28.240.82:7990/report/v01/students/del"];
//创建请求对象
NSMutableURLRequest *request = [NSMutableURLRequest
requestWithURL:url];
request.timeoutInterval =
5.0;
request.HTTPMethod =
@"POST";
//设置请求体
NSString *param = [NSString
stringWithFormat:@"studentId=%@",_cuerntModel.studentId];
//把拼接后的字符串转换为data,设置请求体
request.HTTPBody = [param
dataUsingEncoding:NSUTF8StringEncoding];
//发送请求
NSData *data = [NSURLConnection
sendSynchronousRequest:request returningResponse:nil
error:nil];
NSDictionary *returnData = [NSJSONSerialization
JSONObjectWithData:data options:NSJSONReadingMutableContainers
error:nil];
NSLog(@"returnData----%@",returnData);
向服务器上传数据使用post方法,使用方法如下:
//1.管理器
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager
manager];
//2.设定类型
manager.requestSerializer = [AFJSONRequestSerializer
serializer];
manager.responseSerializer = [AFJSONResponseSerializer
serializer];
//参数
NSDictionary *dict =
@{@"name":nameText.text,@"photo":JSONImgString};
//3.发送请求
[manager POST:@"http://115.28.240.82:7990/report_card/v01/students/modify"
parameters:dict
success:^(AFHTTPRequestOperation *operation,
id responseObject){
}
failure:^(AFHTTPRequestOperation *operation,
NSError *error){
}];
3.上传图片
上传图片给服务器一般分2步:
a:把选择的图片(可以是相机拍的或者是相册选得),上传给服务器,然后服务器会返回一个网络地址,获取这个网络地址
//afn方法
//把取到的图片转成data数据
NSData *imageData =
UIImageJPEGRepresentation(currentImage,
0.5);
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager
manager];
manager.requestSerializer = [AFJSONRequestSerializer
serializer];
manager.responseSerializer = [AFJSONResponseSerializer
serializer];
[manager POST:@"http://115.28.240.82:7990/report/v06/files/images/"parameters:nil
constructingBodyWithBlock:^(id<AFMultipartFormData>formData){
[formData appendPartWithFileData:imageData
name:@"file"
fileName:@"demo.jpg"
mimeType:@"image/png"];
}
success:^(AFHTTPRequestOperation *operation,id responseObject){
NSLog(@"----------------%@",responseObject);
JSONImgString = [NSString
stringWithFormat:@"%@",responseObject[@"data"][@"defaultPath"]];
NSLog(@"success:%@",
JSONImgString);
}
failure:^(AFHTTPRequestOperation *operation,NSError *error){
NSLog(@"error%@",error);
}];
b.把a返回的图片的网络地址传给服务器
//1.管理器
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager
manager];
//2.设定类型
manager.requestSerializer = [AFJSONRequestSerializer
serializer];
manager.responseSerializer = [AFJSONResponseSerializer
serializer];
//参数
NSDictionary *dict =
@{@"@"photo":JSONImgString};
//3.发送请求
[manager POST:@"http://115.28.240.82:7990/repord/v01/students/modify"
parameters:dict
success:^(AFHTTPRequestOperation *operation,
id responseObject){
}
failure:^(AFHTTPRequestOperation *operation,
NSError *error){
}];
1.get请求
请求网络数据使用git方法,使用方法如下:
//请求管理器
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager
manager];
//
格式 json
NSDictionary *dict =
@{@"format":
@"json"};
//发起请求
[manager
GET:@"http://115.28.240.82:7990/report/v02/init/3"
parameters:dict success:^(AFHTTPRequestOperation *operation,id responseObject){
if ([responseObject
isKindOfClass:[NSDictionary
class]]) {
//根据接口的实际内容取数据,字典或者数组
}
}
failure:^(AFHTTPRequestOperation *operation,NSError *error){
NSLog(@"%@",error);
}];
2.post请求
先写一个系统自带的方法,如下:
//设置路径
NSURL *url = [NSURL
URLWithString:@"http://115.28.240.82:7990/report/v01/students/del"];
//创建请求对象
NSMutableURLRequest *request = [NSMutableURLRequest
requestWithURL:url];
request.timeoutInterval =
5.0;
request.HTTPMethod =
@"POST";
//设置请求体
NSString *param = [NSString
stringWithFormat:@"studentId=%@",_cuerntModel.studentId];
//把拼接后的字符串转换为data,设置请求体
request.HTTPBody = [param
dataUsingEncoding:NSUTF8StringEncoding];
//发送请求
NSData *data = [NSURLConnection
sendSynchronousRequest:request returningResponse:nil
error:nil];
NSDictionary *returnData = [NSJSONSerialization
JSONObjectWithData:data options:NSJSONReadingMutableContainers
error:nil];
NSLog(@"returnData----%@",returnData);
向服务器上传数据使用post方法,使用方法如下:
//1.管理器
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager
manager];
//2.设定类型
manager.requestSerializer = [AFJSONRequestSerializer
serializer];
manager.responseSerializer = [AFJSONResponseSerializer
serializer];
//参数
NSDictionary *dict =
@{@"name":nameText.text,@"photo":JSONImgString};
//3.发送请求
[manager POST:@"http://115.28.240.82:7990/report_card/v01/students/modify"
parameters:dict
success:^(AFHTTPRequestOperation *operation,
id responseObject){
}
failure:^(AFHTTPRequestOperation *operation,
NSError *error){
}];
3.上传图片
上传图片给服务器一般分2步:
a:把选择的图片(可以是相机拍的或者是相册选得),上传给服务器,然后服务器会返回一个网络地址,获取这个网络地址
//afn方法
//把取到的图片转成data数据
NSData *imageData =
UIImageJPEGRepresentation(currentImage,
0.5);
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager
manager];
manager.requestSerializer = [AFJSONRequestSerializer
serializer];
manager.responseSerializer = [AFJSONResponseSerializer
serializer];
[manager POST:@"http://115.28.240.82:7990/report/v06/files/images/"parameters:nil
constructingBodyWithBlock:^(id<AFMultipartFormData>formData){
[formData appendPartWithFileData:imageData
name:@"file"
fileName:@"demo.jpg"
mimeType:@"image/png"];
}
success:^(AFHTTPRequestOperation *operation,id responseObject){
NSLog(@"----------------%@",responseObject);
JSONImgString = [NSString
stringWithFormat:@"%@",responseObject[@"data"][@"defaultPath"]];
NSLog(@"success:%@",
JSONImgString);
}
failure:^(AFHTTPRequestOperation *operation,NSError *error){
NSLog(@"error%@",error);
}];
b.把a返回的图片的网络地址传给服务器
//1.管理器
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager
manager];
//2.设定类型
manager.requestSerializer = [AFJSONRequestSerializer
serializer];
manager.responseSerializer = [AFJSONResponseSerializer
serializer];
//参数
NSDictionary *dict =
@{@"@"photo":JSONImgString};
//3.发送请求
[manager POST:@"http://115.28.240.82:7990/repord/v01/students/modify"
parameters:dict
success:^(AFHTTPRequestOperation *operation,
id responseObject){
}
failure:^(AFHTTPRequestOperation *operation,
NSError *error){
}];
相关文章推荐
- 如何在LLDB下排查message sent to deallocated instance问题
- 用iOSOpenDev在Xcode里配置越狱开发环境
- ios开发日记-12 sdwebImage内存泄露
- iOS -- 图片虚化,模糊化
- iOS9新特性——3Dtouchaa
- xcode7 ios9 适配 错误
- Ios小记整理
- ios开发一些零碎的小知识(二)
- ios9企业证书提示“未受信任的企业级开发者”解决方法
- 平时用的到的方法
- iOS证书整理
- 野鸟装备iOS版开发笔记(1.5.0)
- iOS 9正式发布了
- iOS 9适配
- iOS本地通知
- 项目里出现的问题 01(声明这张图片用原图 别渲染) (随机颜色) (自定义Log) (查找当前ios系统版本是多少)
- iOS-多线程(2)
- iOS 数据的存储和读取之归档
- iOS侧滑返回上一级界面
- iOS开发日记26-详解时间戳