Browse Source

Refactored URLRequestConvertible to return an NSMutableURLRequest.

Christian Noon 10 years ago
parent
commit
2944131a2c

+ 3 - 3
Source/Alamofire.swift

@@ -76,12 +76,12 @@ extension NSURLRequest: URLStringConvertible {
 */
 */
 public protocol URLRequestConvertible {
 public protocol URLRequestConvertible {
     /// The URL request.
     /// The URL request.
-    var URLRequest: NSURLRequest { get }
+    var URLRequest: NSMutableURLRequest { get }
 }
 }
 
 
 extension NSURLRequest: URLRequestConvertible {
 extension NSURLRequest: URLRequestConvertible {
-    public var URLRequest: NSURLRequest {
-        return self
+    public var URLRequest: NSMutableURLRequest {
+        return self.mutableCopy() as! NSMutableURLRequest
     }
     }
 }
 }
 
 

+ 1 - 1
Source/ParameterEncoding.swift

@@ -74,7 +74,7 @@ public enum ParameterEncoding {
         - returns: A tuple containing the constructed request and the error that occurred during parameter encoding, if any.
         - returns: A tuple containing the constructed request and the error that occurred during parameter encoding, if any.
     */
     */
     public func encode(URLRequest: URLRequestConvertible, parameters: [String: AnyObject]?) -> (NSMutableURLRequest, NSError?) {
     public func encode(URLRequest: URLRequestConvertible, parameters: [String: AnyObject]?) -> (NSMutableURLRequest, NSError?) {
-        var mutableURLRequest: NSMutableURLRequest = URLRequest.URLRequest.mutableCopy() as! NSMutableURLRequest
+        var mutableURLRequest = URLRequest.URLRequest
 
 
         if parameters == nil {
         if parameters == nil {
             return (mutableURLRequest, nil)
             return (mutableURLRequest, nil)

+ 1 - 1
Source/Upload.swift

@@ -265,7 +265,7 @@ extension Manager {
             let formData = MultipartFormData()
             let formData = MultipartFormData()
             multipartFormData(formData)
             multipartFormData(formData)
 
 
-            let URLRequestWithContentType = URLRequest.URLRequest.mutableCopy() as! NSMutableURLRequest
+            let URLRequestWithContentType = URLRequest.URLRequest
             URLRequestWithContentType.setValue(formData.contentType, forHTTPHeaderField: "Content-Type")
             URLRequestWithContentType.setValue(formData.contentType, forHTTPHeaderField: "Content-Type")
 
 
             if formData.contentLength < encodingMemoryThreshold {
             if formData.contentLength < encodingMemoryThreshold {

+ 4 - 4
Tests/ParameterEncodingTests.swift

@@ -59,7 +59,7 @@ class URLParameterEncodingTestCase: ParameterEncodingTestCase {
 
 
     func testURLParameterEncodeOneStringKeyStringValueParameterAppendedToQuery() {
     func testURLParameterEncodeOneStringKeyStringValueParameterAppendedToQuery() {
         // Given
         // Given
-        let mutableURLRequest = self.URLRequest.mutableCopy() as! NSMutableURLRequest
+        let mutableURLRequest = self.URLRequest.URLRequest
         let URLComponents = NSURLComponents(URL: mutableURLRequest.URL!, resolvingAgainstBaseURL: false)!
         let URLComponents = NSURLComponents(URL: mutableURLRequest.URL!, resolvingAgainstBaseURL: false)!
         URLComponents.query = "baz=qux"
         URLComponents.query = "baz=qux"
         mutableURLRequest.URL = URLComponents.URL
         mutableURLRequest.URL = URLComponents.URL
@@ -343,7 +343,7 @@ class URLParameterEncodingTestCase: ParameterEncodingTestCase {
 
 
     func testURLParameterEncodeGETParametersInURL() {
     func testURLParameterEncodeGETParametersInURL() {
         // Given
         // Given
-        let mutableURLRequest = self.URLRequest.mutableCopy() as! NSMutableURLRequest
+        let mutableURLRequest = self.URLRequest.URLRequest
         mutableURLRequest.HTTPMethod = Method.GET.rawValue
         mutableURLRequest.HTTPMethod = Method.GET.rawValue
         let parameters = ["foo": 1, "bar": 2]
         let parameters = ["foo": 1, "bar": 2]
 
 
@@ -358,7 +358,7 @@ class URLParameterEncodingTestCase: ParameterEncodingTestCase {
 
 
     func testURLParameterEncodePOSTParametersInHTTPBody() {
     func testURLParameterEncodePOSTParametersInHTTPBody() {
         // Given
         // Given
-        let mutableURLRequest = self.URLRequest.mutableCopy() as! NSMutableURLRequest
+        let mutableURLRequest = self.URLRequest.URLRequest
         mutableURLRequest.HTTPMethod = Method.POST.rawValue
         mutableURLRequest.HTTPMethod = Method.POST.rawValue
         let parameters = ["foo": 1, "bar": 2]
         let parameters = ["foo": 1, "bar": 2]
 
 
@@ -540,7 +540,7 @@ class CustomParameterEncodingTestCase: ParameterEncodingTestCase {
     func testCustomParameterEncode() {
     func testCustomParameterEncode() {
         // Given
         // Given
         let encodingClosure: (URLRequestConvertible, [String: AnyObject]?) -> (NSMutableURLRequest, NSError?) = { URLRequest, parameters in
         let encodingClosure: (URLRequestConvertible, [String: AnyObject]?) -> (NSMutableURLRequest, NSError?) = { URLRequest, parameters in
-            let mutableURLRequest = URLRequest.URLRequest.mutableCopy() as! NSMutableURLRequest
+            let mutableURLRequest = URLRequest.URLRequest.URLRequest
             mutableURLRequest.setValue("Xcode", forHTTPHeaderField: "User-Agent")
             mutableURLRequest.setValue("Xcode", forHTTPHeaderField: "User-Agent")
             return (mutableURLRequest, nil)
             return (mutableURLRequest, nil)
         }
         }

+ 1 - 1
Tests/URLProtocolTests.swift

@@ -68,7 +68,7 @@ class ProxyURLProtocol: NSURLProtocol {
     // MARK: Loading Methods
     // MARK: Loading Methods
 
 
     override func startLoading() {
     override func startLoading() {
-        let mutableRequest = request.mutableCopy() as! NSMutableURLRequest
+        let mutableRequest = request.URLRequest
         NSURLProtocol.setProperty(true, forKey: PropertyKeys.HandledByForwarderURLProtocol, inRequest: mutableRequest)
         NSURLProtocol.setProperty(true, forKey: PropertyKeys.HandledByForwarderURLProtocol, inRequest: mutableRequest)
 
 
         activeTask = session.dataTaskWithRequest(mutableRequest)
         activeTask = session.dataTaskWithRequest(mutableRequest)