IOS网络支持库AFNetworking(1)

来源:互联网 发布:linux 赋值 命令结果 编辑:程序博客网 时间:2024/06/06 01:01

以微博为例子:
新建一个数据交互的类继承于NSObject
命名为:AFNetWork.h

判断网络状态:

  -(void)reach{    /*     AFNetworkReachabilityStatusUnknown          = -1 未知     AFNetworkReachabilityStatusNotReachable     = 0  无连接     AFNetworkReachabilityStatusReachableViaWWAN = 1  3G网络     AFNetworkReachabilityStatusReachableViaWiFi = 2  wifi     */    //它是个单例    //如果要检查网络的状态的变化,必须用检查管理器的单例    [[AFNetworkReachabilityManager sharedManager] startMonitoring];    //检查网络状态    [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {        NSLog(@"stactus=%ld",status);    }];}

这里写图片描述

这里写图片描述

ViewController.m

    AFNetWork *afnetwork=[[AFNetWork alloc] init];//初始化对象    [afnetwork reach];//调用reach方法上面
    [afnetwork getRequestWithUrl:@"这里放请求的URL"    WithParameters:@{@"请求参数的key":@"请求的value"}];
    -(void)getRequestWithUrl:(NSString *)urlString WithParameters:(NSDictionary *)dictionary{    NSURL *url=[NSURL URLWithString:urlString];    AFHTTPSessionManager *manager=[AFHTTPSessionManager manager];//用来管理的    [manager GET:url.absoluteString//拿到完整的网址      parameters:dictionary//把对应的数据发送回去        progress:^(NSProgress * _Nonnull downloadProgress) {            NSLog(@"%@",downloadProgress);//进度类型的类        } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {            NSLog(@"responseObject=%@",responseObject);        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {            NSLog(@"error=%@",error);        }];}

通过代码在微博放内容:

ViewController.m

这里写图片描述

这里写图片描述

这里写图片描述
status:为微博发送内容的接口名字key
value:为内容

  [afnetwork postWeiboWithUrl:@"这里放请求的URL"  WithParmeters:@{@"请求参数的key":@"请求的value"},@"status":@"1234"}];
-(void)postWeiboWithUrl:(NSString *)urlString WithParmeters:(NSDictionary *)dictionary{    AFHTTPSessionManager *manger=[AFHTTPSessionManager manager];    //返回格式json    //这里的到的是JSon数据,默认的responseSerializer也是JSon数据    manger.responseSerializer=[AFJSONResponseSerializer serializer];//这里的代码不要写错 不要写成AFJSONRequestSerializer    //得到的是NSData 数据    //manager.responseSerializer=[AFHTTPResponseSerializer serializer];    manger.responseSerializer.acceptableContentTypes=[NSSet setWithObjects:@"application/json", nil];//接收返回类型    NSURL *url=[NSURL URLWithString:urlString];    [manger POST:url.absoluteString      parameters:dictionary        progress:^(NSProgress * _Nonnull uploadProgress) {            NSLog(@"uploadProgress=%@",uploadProgress);        } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {            NSLog(@"responseObject=%@",responseObject);        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {            NSLog(@"error=%@",error);        }];}

使用代码子微博发送图片和内容

这张图片是微博API里面的:

这里写图片描述

    -(void)postWeiboWithUrl:(NSString *)urlString WithParmeters:(NSDictionary *)dictionary WithImage:(NSString *)imageName{    AFHTTPSessionManager *manger=[AFHTTPSessionManager manager];    manger.responseSerializer=[AFJSONResponseSerializer serializer];    manger.responseSerializer.acceptableContentTypes=[NSSet setWithObjects:@"application/json   ", nil];    NSURL *url=[NSURL URLWithString:urlString];    [manger POST:url.absoluteString//POST请求      parameters:dictionaryconstructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {    NSData *data=UIImagePNGRepresentation([UIImage imageNamed:@"anglaybaby"]);//图片转data    NSData *data1=UIImageJPEGRepresentation([UIImage imageNamed:@"anglaybaby"], 0.5);//参数倍压缩 压缩0.5倍    [formData appendPartWithFileData:data1                                name:@"pic"//API对应的名字                            fileName:@"a.png"//名字无所谓                            mimeType:@"png"];} progress:^(NSProgress * _Nonnull uploadProgress) {    NSLog(@"uploadProgress=%@",uploadProgress);} success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {    NSLog(@"responseObject=%@",responseObject);//请求回来的数据} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {    NSLog(@"error=%@",error);}];}

ViewController.m

    //发布内容和图片    [afnetwork postWeiboWithUrl:@"这里放请求的URL"    WithParmeters:@{@"请求参数的key":@"请求的value"},@"对应发送内容接口名":@"发送的内容"}     WithImage:@"发送的图片名字"];
0 0
原创粉丝点击