ソースを参照

Added + to the list of parameter encoded values

Niels van Hoorn 11 年 前
コミット
570ed7e8fe
2 ファイル変更8 行追加1 行削除
  1. 1 1
      Source/Alamofire.swift
  2. 7 0
      Tests/ParameterEncodingTests.swift

+ 1 - 1
Source/Alamofire.swift

@@ -151,7 +151,7 @@ public enum ParameterEncoding {
     }
 
     func escape(string: String) -> String {
-        let allowedCharacters =  NSCharacterSet(charactersInString:" =\"#%/<>?@\\^`{}[]|&").invertedSet
+        let allowedCharacters =  NSCharacterSet(charactersInString:" =\"#%/<>?@\\^`{}[]|&+").invertedSet
         return string.stringByAddingPercentEncodingWithAllowedCharacters(allowedCharacters) ?? string
     }
 }

+ 7 - 0
Tests/ParameterEncodingTests.swift

@@ -139,6 +139,13 @@ class AlamofireURLParameterEncodingTestCase: XCTestCase {
         XCTAssertEqual(URLRequest.URL.query!, "%20foo%20=%20bar%20", "query is incorrect")
     }
 
+    func testURLParameterEncodeStringWithPlusKeyStringWithPlusValueParameter() {
+        let parameters = ["+foo+": "+bar+"]
+        let (URLRequest, error) = self.encoding.encode(self.URLRequest, parameters: parameters)
+        
+        XCTAssertEqual(URLRequest.URL.query!, "%2Bfoo%2B=%2Bbar%2B", "query is incorrect")
+    }
+
     func testURLParameterEncodeStringKeyAllowedCharactersStringValueParameter() {
         let parameters = ["allowed": " =\"#%/<>?@\\^`{}[]|&"]
         let (URLRequest, error) = self.encoding.encode(self.URLRequest, parameters: parameters)