Swift: Simple GET Request
A simple GET request using Swift.
//: Playground - noun: a place where people can play
import UIKit
class Test {
init(path:String){
getRequest(path)
}
func getRequest(path:String){
let operationQueue:NSOperationQueue = {
let operationQueue = NSOperationQueue()
operationQueue.name = "com.chrisjmendez.queue"
operationQueue.maxConcurrentOperationCount = 1
return operationQueue
}()
//A. Craft a GET Request
let url = NSURL(string: path)
let urlRequest = NSMutableURLRequest(URL: url!)
urlRequest.HTTPMethod = "GET"
//B. Send a GET Reqest
NSURLConnection.sendAsynchronousRequest(urlRequest, queue: operationQueue) { (response, responseData, error) -> Void in
print("!", response)
//C. Convert JSON to NSArray
if error != nil {
print("error", error?.localizedDescription)
}
if let data = responseData{
print("data", data)
}
}
}
func parseResponse(json:NSArray){
print(json)
}
}
let test = Test(path: "http://geni.us/youcouldbemine")
extension String {
/// Percent escape value to be added to a URL query value as specified in RFC 3986
/// - returns: Return precent escaped string.
func stringByReplacingSpaceWithPlusEncodingForQueryValue() -> String? {
let term = self.stringByReplacingOccurrencesOfString(" ", withString: "+", options: NSStringCompareOptions.CaseInsensitiveSearch, range: nil)
// Anything which is not URL-friendly is escaped
let escapedTerm = term.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
return escapedTerm
}
}
extension Double {
func toStringWithDecimalPlaces(numberOfDecimalPlaces:Int) -> String {
return String(format:"%."+numberOfDecimalPlaces.description+"f", self)
}
}