如何在swift 3

时间:2016-05-31 21:16:35

标签: swift api rest http alamofire

我在swift 3中有一个项目,想要发出GET请求。但是,Alamofire还没有更新到swift 3.Alamofire什么时候支持swift 3,你如何用swift 3中的参数硬编码GET请求?

3 个答案:

答案 0 :(得分:27)

Swift 3.0

    var request = URLRequest(url: URL(string: "http://example.com")!)
    request.httpMethod = "POST"
    let session = URLSession.shared

    session.dataTask(with: request) {data, response, err in
        print("Entered the completionHandler")
    }.resume()

答案 1 :(得分:16)

Swift 3

let url = URL(string: "http://example.com/get")
    URLSession.shared.dataTask(with: url!, completionHandler: {
        (data, response, error) in
        if(error != nil){
            print("error")
        }else{
            do{
                let json = try JSONSerialization.jsonObject(with: data!, options:.allowFragments) as! [String : AnyObject]


                OperationQueue.main.addOperation({ 
                    self.tableView.reloadData()
                })

            }catch let error as NSError{
                print(error)
            }
        }
    }).resume()

REST API In Swift 3 And Xcode 8 Using URLSession And JSONSerialization

答案 2 :(得分:2)

Alamofire将会更新到Swift 3 ...我猜他们到处都是。没有Alamofire的GET请求非常简单:

    let req = NSMutableURLRequest(URL: NSURL(string:"your-endpoint-url?parameter=value")!)
    req.HTTPMethod = "GET"
    req.HTTPBody = "key=\"value\"".dataUsingEncoding(NSUTF8StringEncoding) //This isn't for GET requests, but for POST requests so you would need to change `HTTPMethod` property
    NSURLSession.sharedSession().dataTaskWithRequest(req) { data, response, error in
        if error != nil {
            //Your HTTP request failed.
            print(error.localizedDescription)
        } else {
            //Your HTTP request succeeded
            print(String(data: data!, encoding: NSUTF8StringEncoding))
        }
    }.resume()