from: http://stackoverflow.com/questions/24016142/how-to-make-an-http-request-in-swift
You can use NSURL , NSURLRequest and NSURLSession or NSURLConnection as you'd normally do in Objective-C. Note that for iOS 7.0 and later, NSURLSession is preferred.
Using NSURLSession
Initialize an NSURL object and an NSURLSessionDataTask from NSURLSession . Then run the task with resume() .
var url = NSURL(string: "http://www.stackoverflow.com")
let task = NSURLSession.sharedSession().dataTaskWithURL(url) {(data, response, error) in
println(NSString(data: data, encoding: NSUTF8StringEncoding))
}
task.resume()
Using NSURLConnection
First, initialize an NSURL and an NSURLRequest :
var url = NSURL(string: "http://www.stackoverflow.com")
var request = NSURLRequest(URL: url)
Then, you can load the request asynchronously with:
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) {(response, data, error) in
println(NSString(data: data, encoding: NSUTF8StringEncoding))
}
Or you can initialize an NSURLConnection :
var connection = NSURLConnection(request: request, delegate:nil, startImmediately: true)
Just make sure to set your delegate to something other than nil and check the delegate methods to work with the response and data received.
For more detail, check the documentation for the NSURLConnectionDataDelegate protocol
Testing on an Xcode playground
If you want to try this code on a Xcode playground, add import XCPlayground to your playground, as well as the following call:
XCPSetExecutionShouldContinueIndefinitely()
This will allow you to use asynchronous code in playgrounds.
|
请发表评论