• AFNetworking3.0使用简介


    注意到咱们集成的版本为3.0.4。

    下面的类已从AFNetworking 3.0中废弃:

    • AFURLConnectionOperation
    • AFHTTPRequestOperation
    • AFHTTPRequestOperationManager

    以及很多修改,有兴趣的可以了解一下。

    下面开始实践一下:

    1. // 请求的参数
    2. NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"20131129", @"date", @"1", @"startRecord", @"5", @"len", @"1234567890", @"udid", @"Iphone", @"terminalType", @"213", @"cid", nil];
    3. // 初始化Manager
    4. AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    5. // 不加上这句话,会报“Request failed: unacceptable content-type: text/plain”错误,因为我们要获取text/plain类型数据
    6. manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    7. // post请求
    8. [manager POST:@"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?" parameters:dic constructingBodyWithBlock:^(id _Nonnull formData) {
    9. // 拼接data到请求体,这个block的参数是遵守AFMultipartFormData协议的。
    10. } progress:^(NSProgress * _Nonnull uploadProgress) {
    11. // 这里可以获取到目前的数据请求的进度
    12. } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
    13. // 请求成功,解析数据
    14. NSLog(@"%@", responseObject);
    15. NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];
    16. NSLog(@"%@", dic);
    17. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    18. // 请求失败
    19. NSLog(@"%@", [error localizedDescription]);
    20. }];

    如果是Get请求,相比Post请求,少了请求参数,然后只需将post方法改为get方法(也是直接将请求参数拼接在URL后面):

    1. // Get请求
    2. [manager GET:@"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213" parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
    3. // 这里可以获取到目前的数据请求的进度
    4. } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
    5. // 请求成功,解析数据
    6. NSLog(@"%@", responseObject);
    7. NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];
    8.  
    9. NSLog(@"%@", dic);
    10. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    11. // 请求失败
    12. NSLog(@"%@", [error localizedDescription]);
    13. }];

     三、总结

    在很多场合,比如我们需要当前网络请求,下载,上传的进度,使用AFNetworking可以省去很多麻烦,还有许多复杂的应用场合,相信它可以让你省事很多。

  • 相关阅读:
    找工作最近的一些收获
    nginx的开源项目
    找工作要看的
    各种排序算法的C实现
    解析递归程序和非递归程序
    Python在centos下的安装
    centos -bash-4.1$ 不显示用户名路径
    python easy_install centos 下安装过程和原理解析
    网络基础学习:
    MATLAB常用数据类型的转换
  • 原文地址:https://www.cnblogs.com/luoxiaofu/p/5328063.html
Copyright © 2020-2023  润新知