我在swift 3中有一个项目,想要发出GET请求。但是,Alamofire还没有更新到swift 3.Alamofire什么时候支持swift 3,你如何用swift 3中的参数硬编码GET请求?
答案 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()