web-dev-qa-db-ja.com

AlamofireでのFORMDATAの使用

しばらくの間alamofireを使用していますが、フォームデータのPostを使用したことはありません。今、私は立ち往生しています。私は2つのパラメータを持っています(email、password)そしてどのようにPOSTサーバーにそれらを送るのか分かりません。誰か私に例を教えてもらえますか?

9
Pan Mluvčí

だから私の解決策は....あなたはAlamofireでパラメータエンコーディングを指定する必要があります。したがって、コードは次のようになります。

Swift 2.0

func registerNewUserFormData(completionHandler: (Bool, String?) -> ()){

        // build parameters
        let parameters = ["email": "[email protected]", "password": "123456"]

        // build request
        Alamofire.request(.POST, urlDomain + "register", parameters: parameters, encoding: .URL).responseJSON { response in

            switch response.result {
            case .Success:
                print("Validation Successful")
                if let JSON = response.result.value {
                    print(JSON)
                }

            case .Failure(let error):
                print(error)

            }
        }
    }
12
Pan Mluvčí

そして、これがSwift 3.0のAlamofire4.0のサンプルコードです。

    let url = "http://testurl.com"

    let parameters = [
        "email": "[email protected]",
        "password": "55555"
    ]


    Alamofire.request(url, method: .post, parameters: parameters, encoding: URLEncoding.default).responseJSON { response in
        switch response.result {
        case .success:
            if let value = response.result.value {
                print(value)
            }
        case .failure(let error):
            print(error)
        }
    }
20
Ahmad Ismail

Swift 5

let url = "http://testurl.com"

let parameters = [
    "email": "[email protected]",
    "password": "55555"
]


AF.request(url, method: .post, parameters: parameters, encoding: URLEncoding.default).responseJSON { response in
    switch response.result {
    case .success:
        if let value = response.result.value {
            print(value)
        }
    case .failure(let error):
        print(error)
    }
}
2
Mohammad Sadiq