             return nil
         }
         
-        let urlRequest = NSMutableURLRequest(URL: url, cachePolicy: cachePolicy, timeoutInterval: timeoutInterval)
-        urlRequest.setValue("text/plain", forHTTPHeaderField: "Content-Type")
-        
-        urlRequest.HTTPMethod = self.dynamicType.httpMethod
-    
-        if self.httpBody != SubclassShouldOverrideString
-        {
-            if let bodyData = self.httpBody.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)
-            {
-                urlRequest.HTTPBody = bodyData
-                urlRequest.setValue("\(bodyData.length)", forHTTPHeaderField: "Content-Length")
-            }
-        }
+        let urlRequest = self.createURLRequest(url)
         
         if let configureUrlRequest = configureUrlRequest {
             configureUrlRequest(urlRequest: urlRequest)

        return NSURL(string: combinedPath, relativeToURL: self.baseUrl)
    }
    
    public func dataTask(configureUrlRequest configureUrlRequest : ConfigureUrlRequestHandler? = nil, completionHandler : DataTaskCompletionHandler) -> NSURLSessionDataTask? {
        
        guard let url = self.buildUrl() else {

            
            }, completionHandler: { (result, urlResponse) -> Void in
                
            self.handleJsonTaskCompletion(result, completionHandler: completionHandler)
        })
    }
}
