IOS网络支持库AFNetworking(1)

5 篇文章 0 订阅

以微博为例子:
新建一个数据交互的类继承于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:dictionary
constructingBodyWithBlock:^(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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值