swift ——~——~第三方网络请求封装

来源:互联网 发布:视频旋转软件中文版 编辑:程序博客网 时间:2024/06/06 19:09
最近闲了下来,做个demo看了下swift3.0相比2.0发生了多大的变化 
费话不多说,直接上代码
    static func getRequest(url:NSString,dic:NSDictionary,cla:AnyClass,progress:((Progress)->Void)?, success:@escaping ((URLSessionDataTask,Any?)->Void),failure:((URLSessionDataTask?,Error)->Void)?){
        let sesson = AFHTTPSessionManager.init();
        sesson.requestSerializer.timeoutInterval = 15;
        sesson.responseSerializer.acceptableContentTypes = NSSet.init(objects: "application/json", "text/json", "text/javascript","text/html") as? Set<String>;
        
        
        sesson.get(url as String , parameters: dic, progress: { (Progress) in
            
            print(Progress);
            
            }, success: { (URLSessionDataTask, dictionary) in
                
                let Dict = dictionary as! NSDictionary;
                
                print(Dict);
                
                let code = Dict["code"] as! NSInteger;
                
                if code == 1 {
                    
                    
                    let dddsf = Dict["datas"] as! NSDictionary
                    let aaa = dddsf.allValues[0] as! NSArray;
                    
                    let sdfsdsdf = NSMutableArray.init(array: aaa)
                    
                    
                    success(URLSessionDataTask,HttpTowWork.model(array: sdfsdsdf as! NSMutableArray,cla:cla));
                    
                }else{
                    
                }
                
            }, failure: { (URLSessionDataTask, Error) in
                print(Error);
                
                failure!(URLSessionDataTask,Error);
        });
        
    }
    
    
    
    
    
    static func model(array:NSMutableArray,cla:AnyClass)->(NSArray){
        
       let array = NSMutableArray.init(array:array)
        
       return NSMutableArray.init(array: RMMapper.mutableArray(of: cla, fromArrayOfDictionary: array))
    }




    外部调用
    func HotGroupBuying(){
        
        HttpTowWork.getRequest(url: APIWorkClass.hotDeals(), dic: NSDictionary.init(), cla: ShopGoodsModel.classForKeyedUnarchiver(), progress: { (Progress) in
            
            }, success: { (URLSessionDataTask, idClass) in
                
                let array  = idClass as! NSArray
                
                print(array)
                
                self.dataArray.replaceObject(at: 0, with: array)
                
                self.collectionView .reloadData()
                
            }) { (URLSessionDataTask, Error) in
        }
    }

0 0
原创粉丝点击