您的位置:首页 > 移动开发 > IOS开发

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){
}];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: