             }
         }()
         
+        urlRequest.setValue(type(of: self).userAgent, forHTTPHeaderField: "User-Agent")
+        urlRequest.setValue("application/json", forHTTPHeaderField: "Content-Type")
+        
+        for (header, value) in request.headers {
+            urlRequest.setValue(value, forHTTPHeaderField: header)
+        }
+        
         return urlRequest
     }
     

        
        urlSession = URLSession(configuration: .default, delegate: nil, delegateQueue: delegateQueue)
    }
    
    func perform(request: NetworkRequest) async throws -> Data {
        let urlRequest = prepareSessionRequest(from: request)

    
    private func prepareSessionRequest(from request: NetworkRequest) -> URLRequest {
        var urlRequest = URLRequest(url: request.url)
        urlRequest.httpBody = request.body
        urlRequest.httpMethod = {
            switch request.method {
            case .post:
