     }
     
     /**
-    Make a request with forced cache time in seconds.
+    Make a request with forced cache time in seconds. Leave expiration as nil to use the Cache-Control value from the server.
     */
-    func sendRequest(request: NSMutableURLRequest, expiration: Int, completionHandler: (NSData!, NSError!) -> Void) {
+    func sendRequest(request: NSMutableURLRequest, expiration: Int?, completionHandler: (NSData!, NSError!) -> Void) {
         request.cachePolicy = NSURLRequestCachePolicy.UseProtocolCachePolicy
         if let authorizationHeader = authorizationHeader {
             request.setValue(authorizationHeader, forHTTPHeaderField: "Authorization")

    }
    
    /**
    Make a POST request with forced cache time in seconds. Uses a Dictionary for the body.
    */
    func post(url: String, body: Dictionary<String, AnyObject>, expiration: Int, completionHandler: (NSData!, NSError!) -> Void) {
        let nsurl = NSURL(string: url)!
        let request = NSMutableURLRequest(URL: nsurl)
        request.HTTPMethod = HTTPMethod.GET.rawValue

    //MARK: - Request Methods
    
    /**
    Make a GET request with forced cache time in seconds. Leave expiration as nil to use the Cache-Control value from the server.
    */
    func get(url: String, expiration: Int?, completionHandler: (NSData!, NSError!) -> Void) {
        let nsurl = NSURL(string: url)!
        let request = NSMutableURLRequest(URL: nsurl)
        request.HTTPMethod = HTTPMethod.GET.rawValue
