How to create and send the json data to server using swift language

前端 未结 2 761
礼貌的吻别
礼貌的吻别 2020-12-08 17:37

I\'m new to IOS development and I have started with the swift language.

I\'m trying to get the value from two text fields and convert those two text fields into json

2条回答
  •  春和景丽
    2020-12-08 18:17

    By using http POST method with NSURLSession. Let's say you are calling submitAction method on the press of the login button

    Swift 3

    @IBAction func submitAction(_ sender: UIButton) {
    
        //declare parameter as a dictionary which contains string as key and value combination. considering inputs are valid
    
        let parameters: [String: String] = ["name": nametextField.text, "password": passwordTextField.text]
    
        //create the url with URL
        let url = URL(string: "http://myServerName.com/api")! //change the url
    
        //create the session object
        let session = URLSession.shared
    
        //now create the URLRequest object using the url object
        var request = URLRequest(url: url)
        request.httpMethod = "POST" //set http method as POST
    
        do {
            request.httpBody = try JSONSerialization.data(withJSONObject: parameters, options: .prettyPrinted) // pass dictionary to nsdata object and set it as request body
    
        } catch let error {
            print(error.localizedDescription)
        }
    
        request.addValue("application/json", forHTTPHeaderField: "Content-Type")
        request.addValue("application/json", forHTTPHeaderField: "Accept")
    
        //create dataTask using the session object to send data to the server
        let task = session.dataTask(with: request, completionHandler: { data, response, error in
    
            guard error == nil else {
                return
            }
    
            guard let data = data else {
                return
            }
    
            do {
                //create json object from data
                if let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [String: Any] {
                    print(json)
                    // handle json...
                }
    
            } catch let error {
                print(error.localizedDescription)
            }
        })
        task.resume()
    }
    

提交回复
热议问题