ios開發之--使用AFNetWorking 3.1.0 ,簡單的請求封裝類

來源:互聯網
上載者:User

標籤:afn   網路   interface   hud   tool   請求   enum   bre   href   

從蘋果系統內建的請求類,到ASIHttpRequest第三方請求類,再到AFNetWorking第三方請求類,目前只要牽扯到資料請求,基本上都是用AFN,所以,這裡純粹是記錄下:

hRequestTools.h

#import <Foundation/Foundation.h>/** *  網路請求類型 */typedef NS_ENUM(NSUInteger,HttpRequestType) {    /**     *  get請求     */    HttpRequestTypeGet = 1,    /**     *  post請求     */    HttpRequestTypePost = 2};@interface hRequestTools : NSObject/** *  發送網路請求 * *  @param URLString   請求的網址字串 *  @param parameters  請求的參數 *  @param type        請求的類型 *  @param success     請求的結果 */+ (void)requestWithURLString:(NSString *)URLString                  parameters:(id)parameters                        type:(HttpRequestType)type                     success:(void (^)(id responseObject))success                     failure:(void (^)(NSError *error))failure;

hRequestTools.m

#pragma mark 封裝的要求方法+ (void)requestWithURLString:(NSString *)URLString                  parameters:(id)parameters                        type:(HttpRequestType)type                     success:(void (^)(id responseObject))success                     failure:(void (^)(NSError *error))failure{    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];    manager.responseSerializer = [AFHTTPResponseSerializer serializer];    manager.requestSerializer.timeoutInterval = 30.0f;    switch (type) {        case HttpRequestTypeGet:        {            [manager GET:URLString parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject) {                if (success) {                    id jsons = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers  error:nil];                    success(jsons);                }            } failure:^(NSURLSessionDataTask *task, NSError *error) {                if (failure) {                    failure(error);                }            }];        }            break;        case HttpRequestTypePost:        {            if (internets) {//有網路時                AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];                manager.responseSerializer = [AFHTTPResponseSerializer serializer];                [manager POST:URLString parameters:parameters success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {                    if (success) {                        id jsons = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers  error:nil];                        success(jsons);                    }                } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {                    if (failure) {                        failure(error);                        [HTools showTextOnlyHud:@"資料請求失敗,請重試。" delay:2.0];                    }                }];            }else //無網路時            {                [HTools showTextOnlyHud:@"請檢查您的網路" delay:2.0];                NSError *error = nil;                failure(error);            }                    }            break;        default:            break;    }        }

請求裡面如果要加緩衝的話,可以和YYCache這個第三方配合使用,

關於YYCache,可以推薦幾個連結:http://www.jianshu.com/p/b8dcf6634fab

 

ios開發之--使用AFNetWorking 3.1.0 ,簡單的請求封裝類

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.