Swift 网络数据请求与解析

Swift 网络数据请求与解析

先说说这几个三方库: 

第一个:Alamofire(它的原作者就是AFNetworking的原作者,这个就不多说了,你要知道AFNetworking有多重要,多好用,它就有多重要好用!)


Git地址:https://github.com/Alamofire/Alamofire

   特点:纯Swift编写的HTTP网络库

                链式请求/响应

      URL/JSON/Plist格式的参数

 上传文件/数据/流/多格式参数

 断点续传

 NSURLCredential授权

 HTTP响应验证

 NSProgress&进度闭包

  支持环境:iOS8.0以上  xcode7.2以上

 //请求

    func request() {

        let url = "https://api.douban.com/v2/book/search"

        let param = ["tag":"Swift" , "count":"1"]



        Alamofire.request(.GET, url, parameters:

param).responseJSON { (response) in

            if let error = response.result.error {

               print(error)

            }else if let value = response.result.value{

              print(value)


          }


      }




  }

    //下载

    func downLoad(){

        let url = "http://img.pconline.com.cn/image/photoblog/1/7/7/4/1774994/20063/28/1143511691007.JPG"

        print(NSHomeDirectory())

        Alamofire.download(.GET, url, destination:

Alamofire.Request.suggestedDownloadDestination()).progress { (readBytes, totalReadBytes, totalNeedToReadBytes) in

            let progress = Int(Double(totalReadBytes)/Double(totalNeedToReadBytes)

* 100)

            print("\(progress)%")

        }.response { (request,

response, data, error) in

            if let error = error {

                print(error)

            }else {

                print("下载成功")


          }


      }

    }.response(queue: dispatch_get_main_queue()) { (_, _, _, error) in

            //返回主线程操作

            if let error = error {

                print(error)

            }else {

                print("下载成功")


          }


      }



第二个:SwiftyJSON一个解析JSON数据的三方库,使用swift写的,中间帮你省去swift的各种可选值的操作,很简便(推荐!)

Git地址:https://github.com/SwiftyJSON/SwiftyJSON

用法

else if let jsonresult =

response.result.value {


      // 用 SwiftyJSON 解析数据

                let JSOnDictory = JSON(jsonresult)

                let data = 

JSOnDictory["goods_list"].array

                for dataDic in  data!

                {




    let model =  Model()


    model.hd_thumb_url = dataDic["hd_thumb_url"].string ?? ""


    model.goods_name =  dataDic["goods_name"].string ?? ""


    let  numString = dataDic["normal_price"].intValue ?? 0


    model.normal_price = numString


    self.dataArr.append(model)

                }

                self.tableView.reloadData()

            }


第三个:Kingfisher(一个图片加载的国产库。重点是国产的的支持!)

用法

self.backGroundImage?.kf_setImageWithURL(NSURL(string: backGroundImageName!)!)

你可能感兴趣的:(Swift 网络数据请求与解析)