eros iOS axios

2020-05-09 18:02:21 阅读:4 编辑
//
//  BMBaseRequest.m
//  WeexDemo
//
//  Created by XHY on 2017/1/13.
//  Copyright © 2017年 taobao. All rights reserved.
//

#import "BMBaseRequest.h"
#import "BMDeviceManager.h"
#import "NSString+Util.h"
#import "BMDefine.h"
#import "YYModel.h"
#import "BMUserInfoModel.h"

@implementation BMBaseRequest

- (YTKRequestMethod)requestMethod
{
    return YTKRequestMethodGET;
}

- (YTKRequestSerializerType)requestSerializerType
{
    return YTKRequestSerializerTypeJSON;
}
- (id)jsonStringConvertToJosnClassWithJsonString:(NSString *)jsonString
{
    NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
    NSError *error;
    id jsonClass = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:&error];
    if(error != nil){
        return  nil;
    }

    return jsonClass;
}
- (void)startRequestResult:(RequestResultBlock)resultBlock
{

    [self startWithCompletionBlockWithSuccess:^(YTKBaseRequest *request) {

        WXLogInfo(@"%@ Request_URL>>>>>>>>>>>>>>>>:%@",NSStringFromClass([self class]),request.requestTask.originalRequest);

        NSNumber *status = [NSNumber numberWithInteger:request.responseStatusCode ?: -1];
        NSString *errorMsg = @"";
        id data = request.responseObject ?: @{};
        id headers = request.responseHeaders ? : @{};
        NSDictionary *resData = @{
                                  @"header":headers,
                                  @"status": status,
                                  @"errorMsg": errorMsg,
                                  @"data": data
                                  };
        if (resultBlock) {
            resultBlock(resData);
        }

    } failure:^(YTKBaseRequest *request) {

        WXLogError(@"%@ Request_URL>>>>>>>>>>>>>>>>:%@ \n\n\n",NSStringFromClass([self class]),request.requestTask.originalRequest);

        // 获取错误code
        NSInteger resCode = request.responseStatusCode ?: request.error.code;
        NSString *errorCode = resCode ? [NSString stringWithFormat:@"%d",resCode] : @"-1";

        NSString *errmsg = [errorCode integerValue] >= -1 ? [NSString getStatusText:[errorCode integerValue]] : request.error.localizedDescription ?: [NSString getStatusText:[errorCode integerValue]];
        NSString *msg = [NSString stringWithFormat:@"%@(Code:%@)",errmsg,errorCode];
        id headers = request.responseHeaders ? : @{};
        NSString *response  =request.responseString;
        Boolean is_json = true;
        id data = [self jsonStringConvertToJosnClassWithJsonString:response];
        if(data == nil){
            is_json= false;
        }

        NSDictionary *resData = @{
                                  @"header":headers,
                                  @"status": errorCode,
                                  @"errorMsg": msg,
                                  @"data":(is_json ? data :response)
                                  };

        if (resultBlock) {
            resultBlock(resData);
        }

    }];
}

@end