awesome-ios-developer/Helper/Network Layer/Encoding/JSONParameterEncoder.swift
2021-05-03 01:33:13 -05:00

23 lines
691 B
Swift

//
// JSONParameterEncoder.swift
// MapDemoApp
//
// Created by JungpyoHong on 4/25/21.
//
import Foundation
public struct JSONParameterEncoder: ParameterEncoder {
public func encode(urlRequest: inout URLRequest, with parameters: Parameters) throws {
do {
let jsonAsData = try JSONSerialization.data(withJSONObject: parameters, options: .prettyPrinted)
urlRequest.httpBody = jsonAsData
if urlRequest.value(forHTTPHeaderField: "Content-Type") == nil {
urlRequest.setValue("application/json", forHTTPHeaderField: "Content-Type")
}
}catch {
throw NetworkError.encodingFailed
}
}
}