How do I make an HTTP request in Swift?

前端 未结 20 1386
不知归路
不知归路 2020-11-22 05:10

I read The Programming Language Swift by Apple in iBooks, but cannot figure out how to make an HTTP request (something like cURL) in Swift. Do I need to import Obj-C classes

20条回答
  •  一个人的身影
    2020-11-22 06:01

    //Here is an example that worked for me

    //Swift function that post a request to a server with key values

    func insertRecords()
    {
    
    
    
        let usrID = txtID.text
        let checkin = lblInOut.text
        let comment = txtComment.text
    
    
    
        // The address of the web service
        let urlString = "http://your_url/checkInOut_post.php"
    
        // These are the keys that your are sending as part of the post request
        let keyValues = "id=\(usrID)&inout=\(checkin)&comment=\(comment)"
    
    
    
    
        // 1 - Create the session by getting the configuration and then
        //     creating the session
    
        let config = NSURLSessionConfiguration.defaultSessionConfiguration()
        let session = NSURLSession(configuration: config, delegate: nil, delegateQueue: nil)
    
    
        // 2 - Create the URL Object
    
        if let url = NSURL(string: urlString){
    
    
            // 3 - Create the Request Object
    
            var request  = NSMutableURLRequest(URL: url)
            request.HTTPMethod = "POST"
    
            // set the key values
            request.HTTPBody = keyValues.dataUsingEncoding(NSUTF8StringEncoding);
    
    
            // 4 - execute the request
    
            let taskData = session.dataTaskWithRequest(request, completionHandler: {
    
                (data:NSData!, response:NSURLResponse!, error:NSError!) -> Void in
    
                println("\(data)")
    
                // 5 - Do something with the Data back
    
                if (data != nil) {
    
                    // we got some data back
                    println("\(data)")
    
                    let result = NSString(data: data , encoding: NSUTF8StringEncoding)
                    println("\(result)")
    
                    if result == "OK" {
    
                        let a = UIAlertView(title: "OK", message: "Attendece has been recorded", delegate: nil, cancelButtonTitle: "OK")
    
                        println("\(result)")
    
                        dispatch_async(dispatch_get_main_queue()) {
    
    
                        a.show()
    
    
                        }
    
    
                    } else {
                      // display error and do something else
    
                    }
    
    
                } else
    
                {   // we got an error
                    println("Error getting stores :\(error.localizedDescription)")
    
                }
    
    
            })
    
            taskData.resume()
    
    
    
        }
    
    
    }
    

    PHP Code to get the key values

    $empID = $_POST['id'];

    $inOut = $_POST['inout'];

    $comment = $_POST['comment'];

提交回复
热议问题