@@ -103,6 +103,56 @@ extension NetResponse {
103103 return self
104104 }
105105
106+ @discardableResult public func setString( _ string: String ? , encoding: String . Encoding = . utf8, allowLossyConversion: Bool = false ) -> Self {
107+ guard let string = string,
108+ let data = string. data ( using: encoding, allowLossyConversion: allowLossyConversion) else {
109+ return self
110+ }
111+ setObject ( data)
112+ setContentLength ( Int64 ( data. count) )
113+ return self
114+ }
115+
116+ @discardableResult public func setJSON< T: Encodable > ( _ encodable: T ? ) throws -> Self {
117+ guard let encodable = encodable else {
118+ return self
119+ }
120+ let data = try JSONEncoder ( ) . encode ( encodable)
121+ setObject ( data)
122+ setContentLength ( Int64 ( data. count) )
123+ return self
124+ }
125+
126+ @discardableResult public func setJSON( _ object: Any ? , options: JSONSerialization . WritingOptions = . prettyPrinted) throws -> Self {
127+ guard let jsonObject = object else {
128+ return self
129+ }
130+ let data = try JSONSerialization . data ( withJSONObject: jsonObject, options: options)
131+ setObject ( data)
132+ setContentLength ( Int64 ( data. count) )
133+ return self
134+ }
135+
136+ @discardableResult public func setPlist< T: Encodable > ( _ encodable: T ? ) throws -> Self {
137+ guard let encodable = encodable else {
138+ return self
139+ }
140+ let data = try PropertyListEncoder ( ) . encode ( encodable)
141+ setObject ( data)
142+ setContentLength ( Int64 ( data. count) )
143+ return self
144+ }
145+
146+ @discardableResult public func setPlist( _ object: Any ? , format: PropertyListSerialization . PropertyListFormat = . xml, options: PropertyListSerialization . WriteOptions = 0 ) throws -> Self {
147+ guard let plistBody = object else {
148+ return self
149+ }
150+ let data = try PropertyListSerialization . data ( fromPropertyList: plistBody, format: format, options: options)
151+ setObject ( data)
152+ setContentLength ( Int64 ( data. count) )
153+ return self
154+ }
155+
106156 public func build( ) -> NetResponse {
107157 return NetResponse ( self )
108158 }
0 commit comments