一个iOS app最基本的功能是发送接收数据,今天就谈一下iOS 怎么通过AFN3.0进行通信的。
1.引入AFN3.0头文件。
#import "AFNetworking.h"
+(BOOL)sendMessage:(NSString*)title describe:(NSString*)describe url:(NSString*)url{
AFHTTPSessionManager* manager=[AFHTTPSessionManager manager];
//设置可接受的数据类型
manager.responseSerializer.acceptableContentTypes=[NSSet setWithObjects:@"application/json",@"text/html",@"image/jpeg",@"image/png",@"application/octet-stream",@"text/json",nil];
//设置以什么样的形式接收和发送数据,这里是二进制的形式
manager.requestSerializer=[AFHTTPRequestSerializer serializer];
manager.responseSerializer=[AFHTTPResponseSerializer serializer];
// NSData* da=[describe dataUsingEncoding:NSUTF8StringEncoding];
//设置请求的头部,这里最好设置一下,因为struts2接收数据的话如果你没有设置这个它是接收不了的
[manager.requestSerializer setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
//开始上传
[manager POST:url parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>_Nonnull FormData) {
//添加请求体,也就是要发送的数据
NSData *des=[describe dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"%@", describe);
[FormData appendPartWithFormData:des name:title];
} progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"上传成功");
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"上传失败:%@",error);
}];
return YES;
}