swift网络请求 数据解析 图片显示 模型转换

分别是:

Alamofire :swift版本的网络请求sdk,是AFNetworking研发团队研发的swift版网络请求工具类

SwiftyJSON:当然就是用来解析json数据的咯

Kingfisher: 是用来显示网络图片的与oc中的SDWebImage类似

HandyJSON: 可将json转模型

上代码:

实现的效果图:


swift网络请求 数据解析 图片显示 模型转换_第1张图片
image

Alamofire的使用:

get请求

 func getRequest(urlString:String, params :Parameters? =nil, success :@escaping(_response : [String:AnyObject])->(), failture :@escaping(_error :Error)->()) { 
        //使用Alamofire进行网络请求时,调用该方法的参数都是通过getRequest(urlString, params, success :, failture :)传入的,而success传入的其实是一个接受          [String : AnyObject]类型 返回void类型的函数
         Alamofire.request(urlString, method: .get, parameters: params)
 
             .responseJSON{ (response)in/*这里使用了闭包*/
 
                 //当请求后response是我们自定义的,这个变量用于接受服务器响应的信息
            //使用switch判断请求是否成功,也就是response的result
                 switchresponse.result{
 
                 case.success(letvalue):
 
                     //当响应成功是,使用临时变量value接受服务器返回的信息并判断是否为[String: AnyObject]类型 如果是那么将其传给其定义方法中的success
 
                     //                    if let value = response.result.value as? [String: AnyObject] {
 
                    success(valueas! [String:AnyObject])
 
                    //                    }
 
 //                    let json = JSON(value)

 //                    print(json)
 
                 case.failure(leterror):
 
                     failture(error)
 
                     print("error:\(error)")
 
                 }
 
         }
 
     }

post请求

 funcpostRequest(urlString :String, params :Parameters? =nil, success :@escaping(_response : [String:AnyObject])->(), failture :@escaping(_error :Error)->()) {
 
         Alamofire.request(urlString, method:HTTPMethod.post, parameters: params).responseJSON{ (response)in
 
            switchresponse.result{
 
             case.success:
 
                 ifletvalue = response.result.valueas? [String:AnyObject] {
 
                     success(value)
 
                 }
 
             case.failure(leterror):
 
                 failture(error)
 
                 print("error:\(error)")
 
             }
 
        }
 
     }

上传图片或文件

 func upLoadImageRequest(urlString :String, params:[String:String], data: [Data], name: [String],success :@escaping(_response : [String:AnyObject])->(), failture :@escaping(_error :Error)->()){
 
         let headers = ["content-type":"multipart/form-data"]
 
         Alamofire.upload(
 
             multipartFormData: { multipartFormDatain
 
                 //666多张图片上传
 
 //                拼接参数
 
                 for(key,_)in params {
 
                     letvalue = params[key]
 
                     multipartFormData.append((value?.data(using:String.Encoding.utf8)!)!, withName: key)
 
                 }
 
                 for I in 0..

SwiftyJSON使用:

JSON(json)使用到了Swiftjson

swift网络请求 数据解析 图片显示 模型转换_第2张图片
image

Kingfisher的简单使用

 cell.iconImageView.kf.setImage(with:URL(string: model.iconUrl))*

HandyJSON的使用

创建结构体模型
swift网络请求 数据解析 图片显示 模型转换_第3张图片
image.png
给模型赋值
//解析数据
            let json = JSON(respont)
            print(json)
            if let advertList = JSONDeserializer.deserializeFrom(json: json.description) { // 从字符串转换为对象实例
            }

你可能感兴趣的:(swift网络请求 数据解析 图片显示 模型转换)