美文网首页
Alamofire + HandyJSON,swift网络请求加

Alamofire + HandyJSON,swift网络请求加

作者: wenju | 来源:发表于2021-12-01 16:12 被阅读0次

1.get请求:

import Alamofire
...
func getData(){
        Alamofire.request("url", method: .get, parameters: nil,encoding: JSONEncoding.default, headers: ["uid": "wenju"]).responseJSON {
            response in
            switch response.result {
                case .success(let json):
                   let obj = BaseModel.deserialize(from: json as? Dictionary)
                            print("message------>\(obj!.message!)")
                            print("data------>\(obj!.data!)")
                            print("code------>\(obj!.code!)")
                case .failure(let error):
                    print(error)
            }
        }
    }

2.post请求:

import Alamofire
...
    func postData(){
        print(object.toJSONString() as Any)
        Alamofire.request("url", method: .post, parameters: object.toJSON(),encoding: JSONEncoding.default, headers: ["Content-Type": "application/json"]).responseJSON {
            response in
            switch response.result {
                case .success(let json):
                     let obj = BaseModel.deserialize(from: json as? Dictionary)
                            print("message------>\(obj!.message!)")
                            print("data------>\(obj!.data!)")
                            print("code------>\(obj!.code!)")
                case .failure(let error):
                    print(error)
            }
        }
    }

3.上传图片到服务

import Alamofire
...
    func uploadImage(imageData : Data){
        Alamofire.upload(
            multipartFormData: { multipartFormData in
                multipartFormData.append(imageData, withName: "image", fileName: "123456.jpg", mimeType: "image/jpeg")
                //multipartFormData.append(imageData, withName: "file", fileName: "123456.jpg", mimeType: "image/jpeg")
                //......

            },to: "url",encodingCompletion: { encodingResult in
            switch encodingResult {
            case .success(let upload, _, _):
                upload.responseJSON { response in
                    switch response.result {
                        case .success(let json):
                            let obj = BaseModel.deserialize(from: json as? Dictionary)
                            print("message------>\(obj!.message!)")
                            print("data------>\(obj!.data!)")
                            print("code------>\(obj!.code!)")
                        case .failure(let error):
                            print("\(error)")
                    }
                }
                upload.uploadProgress(queue: DispatchQueue.global(qos: .utility)) { progress in
                    print("图片上传进度: \(progress.fractionCompleted)")
                }
            case .failure(let encodingError):
                print(encodingError)
            }
        })
    }

4.创建实体类
class BaseModel: HandyJSON{
var message: String?
var data: String?
var code: String?

required init() {

}

}

相关文章

网友评论

      本文标题:Alamofire + HandyJSON,swift网络请求加

      本文链接:https://www.haomeiwen.com/subject/dnbsxrtx.html