Swift--Alamofire 网络请求(不需要传入参数的类型)

func getAllDeviceNumFromCloudSQL(complete:@escaping ([String])->Void) {

    let headers = CUTicket()
    guard let storeID = PalauDefaults.storeID.value else {
        return
    }
    let url = BaseUrl + "/express/device/getallstation/\(storeID)"
    ProgressHUD.show(nil, interaction: false)
    Alamofire.request(url, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: headers)  
    .responseJSON {  (response) in
        ProgressHUD.dismiss()
        switch response.result{
        case .success:
            guard let value = response.result.value else{
                return
            }
            let json = JSON(value)
            if let err_code = json["err_code"].int{
                DispatchQueue.main.async(execute: {
                    if err_code > 0{
                        Utility.showNoticeAlertView(("Mail Failed","\(json["err_msg"].stringValue)"))
                        return
                    }else if let datas = json.arrayObject{
                        complete(datas as! [String])
                    }
                })
            }
        case .failure(let error):
            print(error.localizedDescription)
            Utility.showNoticeAlertView(("Mail Failed",NSLocalizedString2("\(error.localizedDescription)", comment:"")))
        }
    }
}

        .responseData { (d) in //替换上面.responseJSON {  (response) in...的部分可以通过打印s以及ss可以调试网络请求没有通的原因,相当于对返回来的数据没有进行序列化,404-statusCode代表相当于没有url一样似的//
        if let data = d.data {
           let s = String(data: data, encoding: .utf8)
           let ss = d.response?.statusCode
          print(ss)
       }
   }

猜你喜欢

转载自blog.csdn.net/SoftwareDoger/article/details/102542501