URLEncodedFormEncoder - SwiftDocOrg/Alamofire GitHub Wiki
URLEncodedFormEncoder
An object that encodes instances into URL-encoded query strings.
public final class URLEncodedFormEncoder
There is no published specification for how to encode collection types. By default, the convention of appending
[] to the key for array values (foo[]=1&foo[]=2), and appending the key surrounded by square brackets for
nested dictionary values (foo[bar]=baz) is used. Optionally, ArrayEncoding can be used to omit the
square brackets appended to array keys.
BoolEncoding can be used to configure how Bool values are encoded. The default behavior is to encode
true as 1 and false as 0.
DateEncoding can be used to configure how Date values are encoded. By default, the .deferredToDate
strategy is used, which formats dates from their structure.
SpaceEncoding can be used to configure how spaces are encoded. Modern encodings use percent replacement (%20),
while older encodings may expect spaces to be replaced with +.
This type is largely based on Vapor's url-encoded-form project.
Initializers
init(alphabetizeKeyValuePairs:arrayEncoding:boolEncoding:dataEncoding:dateEncoding:keyEncoding:spaceEncoding:allowedCharacters:)
Creates an instance from the supplied parameters.
public init(alphabetizeKeyValuePairs: Bool = true, arrayEncoding: ArrayEncoding = .brackets, boolEncoding: BoolEncoding = .numeric, dataEncoding: DataEncoding = .base64, dateEncoding: DateEncoding = .deferredToDate, keyEncoding: KeyEncoding = .useDefaultKeys, spaceEncoding: SpaceEncoding = .percentEscaped, allowedCharacters: CharacterSet = .afURLQueryAllowed)
Parameters
- alphabetizeKeyValuePairs: Whether or not to sort the encoded key value pairs.
trueby default. - arrayEncoding: The
ArrayEncodingto use..bracketsby default. - boolEncoding: The
BoolEncodingto use..numericby default. - dataEncoding: The
DataEncodingto use..base64by default. - dateEncoding: The
DateEncodingto use..deferredToDateby default. - keyEncoding: The
KeyEncodingto use..useDefaultKeysby default. - spaceEncoding: The
SpaceEncodingto use..percentEscapedby default. - allowedCharacters: The
CharacterSetof allowed (non-escaped) characters..afURLQueryAllowedby default.
Properties
alphabetizeKeyValuePairs
Whether or not to sort the encoded key value pairs.
let alphabetizeKeyValuePairs: Bool
arrayEncoding
The ArrayEncoding to use.
let arrayEncoding: ArrayEncoding
boolEncoding
The BoolEncoding to use.
let boolEncoding: BoolEncoding
dataEncoding
THe DataEncoding to use.
let dataEncoding: DataEncoding
dateEncoding
The DateEncoding to use.
let dateEncoding: DateEncoding
keyEncoding
The KeyEncoding to use.
let keyEncoding: KeyEncoding
spaceEncoding
The SpaceEncoding to use.
let spaceEncoding: SpaceEncoding
allowedCharacters
The CharacterSet of allowed (non-escaped) characters.
var allowedCharacters: CharacterSet
Methods
encode(_:)
Encodes the value as a URL form encoded String.
public func encode(_ value: Encodable) throws -> String
Parameters
- value: The
Encodablevalue.`
Throws
An Error or EncodingError instance if encoding fails.
Returns
The encoded String.
encode(_:)
Encodes the value as Data. This is performed by first creating an encoded String and then returning the
.utf8 data.
public func encode(_ value: Encodable) throws -> Data
Parameters
- value: The
Encodablevalue.
Throws
An Error or EncodingError instance if encoding fails.
Returns
The encoded Data.