zoukankan      html  css  js  c++  java
  • [iOS微博项目

     
    A.封装网络请求
    1.需求
    为了避免代码冗余和对于AFN框架的多处使用导致耦合性太强,所以把网络请求封装成自己的工具类,以后便于更换网络框架。
     
    2.思路
    创建一个自定义工具类,提供类方法来实现网络请求
     
    3.实现
     1 //
     2 //  HVWNetworkTool.h
     3 //  HVWWeibo
     4 //
     5 //  Created by hellovoidworld on 15/2/9.
     6 //  Copyright (c) 2015年 hellovoidworld. All rights reserved.
     7 //
     8 
     9 #import <Foundation/Foundation.h>
    10 
    11 @interface HVWNetworkTool : NSObject
    12 
    13 /** get方法发送请求 */
    14 + (void) get:(NSString *)url parameters:(NSDictionary *)parameters success:(void (^)(id responseObject))success failure:(void (^)(NSError *error)) failure;
    15 
    16 /** post方法发送请求 */
    17 + (void) post:(NSString *)url parameters:(NSDictionary *)parameters success:(void (^)(id responseObject))success failure:(void (^)(NSError * error))failure;
    18 
    19 /** post方法发送请求(带文件数据) */
    20 + (void) post:(NSString *)url parameters:(NSDictionary *) parameters filesData:(NSArray *)filesData success:(void (^)(id responseObject))success failure:(void (^)(NSError *error))failure;
    21 
    22 @end
     
     1 //
     2 //  HVWNetworkTool.m
     3 //  HVWWeibo
     4 //
     5 //  Created by hellovoidworld on 15/2/9.
     6 //  Copyright (c) 2015年 hellovoidworld. All rights reserved.
     7 //
     8 
     9 #import "HVWNetworkTool.h"
    10 #import "AFNetworking.h"
    11 #import "HVWFileDataParam.h"
    12 
    13 @implementation HVWNetworkTool
    14 
    15 /** get方法发送请求 */
    16 + (void) get:(NSString *)url parameters:(NSDictionary *)parameters success:(void (^)(id responseObject))success failure:(void (^)(NSError *error)) failure {
    17     // 创建http操作管理者
    18     AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    19    
    20     // 发送请求
    21     [manager GET:url parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
    22         if (success) {
    23             success(responseObject);
    24         }
    25     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    26         if (failure) {
    27             failure(error);
    28         }
    29     }];
    30 }
    31 
    32 /** post方法发送请求 */
    33 + (void) post:(NSString *)url parameters:(NSDictionary *)parameters success:(void (^)(id responseObject))success failure:(void (^)(NSError * error))failure {
    34     // 创建http操作管理者
    35     AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    36    
    37     // 发送请求
    38     [manager POST:url parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
    39         if (success) {
    40             success(responseObject);
    41         }
    42     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    43         if (failure) {
    44             failure(error);
    45         }
    46     }];
    47 }
    48 
    49 
    50 /** post方法发送请求(带文件数据) */
    51 + (void) post:(NSString *)url parameters:(NSDictionary *) parameters filesData:(NSArray *)filesData success:(void (^)(id responseObject))success failure:(void (^)(NSError *error))failure {
    52     // 创建http操作管理者
    53     AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    54    
    55     // 发送请求
    56     [manager POST:url parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    57        
    58         // 读取文件参数
    59         for (HVWFileDataParam *fileDataParam in filesData) {
    60             [formData appendPartWithFileData:fileDataParam.fileData name:fileDataParam.name fileName:fileDataParam.fileName mimeType:fileDataParam.mimeType];
    61         }
    62     } success:^(AFHTTPRequestOperation *operation, id responseObject) {
    63         if (success) {
    64             success(responseObject);
    65         }
    66     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    67         if (failure) {
    68             failure(error);
    69         }
    70     }];
    71 }
    72 
    73 @end
  • 相关阅读:
    Xcode 增强开发效率的插件
    svn 常用指令
    初识JFinal
    企业竞争案例分析
    可行性研究5
    可行性研究习题4
    可行性研究课后题
    关于阅读软件工程和计算机科学技术区别的文章来谈谈自己看法
    关于中文编程是解决中国程序员效率的秘密武器的问题思考
    Java ForkJoinPool 用法及原理
  • 原文地址:https://www.cnblogs.com/hellovoidworld/p/4285056.html
Copyright © 2011-2022 走看看