APN的POST和GET请求工具的封装

为了降低自己项目和APN的耦合度,可以封装个自己的工具包,面向自己的工具开发,这里学习了下关于POST和GET的设计方式:

/**

 *  发送一个POST请求

 *  @param url     请求路径

 *  @param params  请求参数

 *  @param success 请求成功后的回调

 *  @param failure 请求失败后的回调

 */

+ (void)postWithURL:(NSString *)url params:(NSDictionary *)params success:(void (^)(id))success failure:(void (^)(NSError *))failure

{

    // 1.创建请求管理对象

    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManagermanager];

    

    // 2.发送请求

    [mgr POST:url parameters:params

      success:^(AFHTTPRequestOperation *operation, id responseObject) {

          if (success) {

              success(responseObject);

          }

      } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

          if (failure) {

              failure(error);

          }

      }];

}

 

/**

 *  发送一个POST请求(上传文件数据)

 *  @param url     请求路径

 *  @param params  请求参数

 *  @param formData  文件参数

 *  @param success 请求成功后的回调

 *  @param failure 请求失败后的回调

 */

 + (void)postWithURL:(NSString *)url params:(NSDictionary *)params formDataArray:(NSArray *)formDataArray success:(void (^)(id))success failure:(void (^)(NSError *))failure

{

    // 1.创建请求管理对象

    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManagermanager];

    

    // 2.发送请求

    [mgr POST:url parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> totalFormData) {

        for (IWFormData *formData in formDataArray) {

            [totalFormData appendPartWithFileData:formData.data name:formData.name fileName:formData.filename mimeType:formData.mimeType];

        }

    } success:^(AFHTTPRequestOperation *operation, id responseObject) {

        if (success) {

            success(responseObject);

        }

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

        if (failure) {

            failure(error);

        }

    }];

}

 

/**

 *  发送一个GET请求

 *  @param url     请求路径

 *  @param params  请求参数

 *  @param success 请求成功后的回调

 *  @param failure 请求失败后的回调

 */

+ (void)getWithURL:(NSString *)url params:(NSDictionary *)params success:(void (^)(id))success failure:(void (^)(NSError *))failure

{

    // 1.创建请求管理对象

    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManagermanager];

    

    // 2.发送请求

    [mgr GET:url parameters:params

      success:^(AFHTTPRequestOperation *operation, id responseObject) {

          if (success) {

              success(responseObject);

          }

      } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

          if (failure) {

              failure(error);

          }

      }];

}

 

posted @ 2014-05-25 21:40  lanchong910  阅读(209)  评论(0编辑  收藏  举报