美文网首页程序员
AFNetworking的简单实用

AFNetworking的简单实用

作者: 李某lkb | 来源:发表于2017-12-07 13:22 被阅读19次

放在开头

如果你使用的是Swift,那么请转到Alamofire.
如果你使用的是OC,那么继续.

如果你还没安装CocoaPods,那么请转到CocoaPods.安装好了再回来.

接下来,就很重要了
1.cd 到工程目录

执行 pod init

  1. vim Podfile (注意,其中TargetName改成你自己的工程名字)

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
target 'TargetName' do
pod 'AFNetworking', '~> 3.0'
end

3.执行 pod install

4.等会就好了.然后打开后缀名为 xcworkspace

5.引入头文件

#import "AFNetworking.h"

做开发比较常用的就是GET,POST,上传文件到服务器.

  • 首先来段GET的代码
 AFHTTPSessionManager *session = [AFHTTPSessionManager manager];
    // 设置超时时间
    [session.requestSerializer willChangeValueForKey:@"timeoutInterval"];
    session.requestSerializer.timeoutInterval = 10.f;
    [session.requestSerializer didChangeValueForKey:@"timeoutInterval"];
    session.responseSerializer = [AFHTTPResponseSerializer serializer];
    [session GET:URLString parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
                    
                    
                    if (success) {
                        
                        success(responseObject);
                    }
//你可以和我一样再封装一层,也可以直接在这里处理.

                } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
                    
                    
                    
                    if (failure) {
                        
                        failure(error);
                    }
                }];

  • POST 请求
AFHTTPSessionManager *session = [AFHTTPSessionManager manager];
    // 设置超时时间
    [session.requestSerializer willChangeValueForKey:@"timeoutInterval"];
    session.requestSerializer.timeoutInterval = 10.f;
    [session.requestSerializer didChangeValueForKey:@"timeoutInterval"];
    session.responseSerializer = [AFHTTPResponseSerializer serializer];
[session POST:URLString parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        
    }];
  • 上传图片到服务器
AFHTTPSessionManager *session = [AFHTTPSessionManager manager];
    // 设置超时时间
    [session.requestSerializer willChangeValueForKey:@"timeoutInterval"];
    session.requestSerializer.timeoutInterval = 10.f;
    [session.requestSerializer didChangeValueForKey:@"timeoutInterval"];
    session.responseSerializer = [AFHTTPResponseSerializer serializer];
[session POST:URLString parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
        
        UIImage*imageObj;
        
        //截取图片
        
        NSData *imageData = UIImageJPEGRepresentation(imageObj, 0.5);
        

        // 上传文件
        
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        
        formatter.dateFormat = @"yyyyMMddHHmmss";
        
        NSString *str = [formatter stringFromDate:[NSDate date]];
        
        NSString *fileName = [NSString stringWithFormat:@"%@.jpg", str];
        
        
        [formData appendPartWithFileData:imageData name:@"att_face" fileName:fileName mimeType:@"image/png"];
        
        
        
        
        
        
        
        
    } progress:^(NSProgress * _Nonnull uploadProgress) {
        
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        
    }];

//是不是从服务器获取数据也不那么难了.

迷之微笑

希望能打消你们学习的担忧,编程也可以分简单.

最后以AFN结尾!
谢谢大家!

A F N
F F F
N N N

相关文章

网友评论

    本文标题:AFNetworking的简单实用

    本文链接:https://www.haomeiwen.com/subject/wysdixtx.html