From 37d7baf49cbc518cd004b774ab5ea2353867d6e5 Mon Sep 17 00:00:00 2001 From: Ali Moazenzadeh Date: Mon, 13 Dec 2021 14:30:30 +0330 Subject: [PATCH 1/2] Make request properties public and add isFnished property --- Sources/NetShears/Models/RequestModel.swift | 34 ++++++++++--------- .../NetworkLoggerUrlProtocol.swift | 1 + 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/Sources/NetShears/Models/RequestModel.swift b/Sources/NetShears/Models/RequestModel.swift index 0facbe2..368460d 100644 --- a/Sources/NetShears/Models/RequestModel.swift +++ b/Sources/NetShears/Models/RequestModel.swift @@ -8,22 +8,23 @@ import Foundation import UIKit public final class NetShearsRequestModel: Codable { - let id: String - let url: String - let host: String? - let port: Int? - let scheme: String? - let date: Date - let method: String - let headers: [String: String] - var credentials: [String : String] - var cookies: String? - var httpBody: Data? - var code: Int - var responseHeaders: [String: String]? - var dataResponse: Data? - var errorClientDescription: String? - var duration: Double? + public let id: String + public let url: String + public let host: String? + public let port: Int? + public let scheme: String? + public let date: Date + public let method: String + public let headers: [String: String] + public var credentials: [String : String] + public var cookies: String? + public var httpBody: Data? + public var code: Int + public var responseHeaders: [String: String]? + public var dataResponse: Data? + public var errorClientDescription: String? + public var duration: Double? + public var isFinished: Bool init(request: NSURLRequest, session: URLSession?) { id = UUID().uuidString @@ -37,6 +38,7 @@ public final class NetShearsRequestModel: Codable { var headers = request.allHTTPHeaderFields ?? [:] httpBody = request.httpBody code = 0 + isFinished = false // collect all HTTP Request headers except the "Cookie" header. Many request representations treat cookies with special parameters or structures. For cookie collection, refer to the bottom part of this method diff --git a/Sources/NetShears/URLProtocol/NetworkLoggerUrlProtocol.swift b/Sources/NetShears/URLProtocol/NetworkLoggerUrlProtocol.swift index f374f5d..f92e237 100644 --- a/Sources/NetShears/URLProtocol/NetworkLoggerUrlProtocol.swift +++ b/Sources/NetShears/URLProtocol/NetworkLoggerUrlProtocol.swift @@ -61,6 +61,7 @@ class NetworkLoggerUrlProtocol: URLProtocol { if let startDate = currentRequest?.date{ currentRequest?.duration = fabs(startDate.timeIntervalSinceNow) * 1000 //Find elapsed time and convert to milliseconds } + currentRequest?.isFinished = true if let request = currentRequest { requestObserver.newRequestArrived(request) From bdf5450e8af1edcdd802984f190edb770e64519e Mon Sep 17 00:00:00 2001 From: Ali Moazenzadeh Date: Mon, 13 Dec 2021 14:53:29 +0330 Subject: [PATCH 2/2] Fix build error --- Sources/NetShears/Models/RequestModel.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Sources/NetShears/Models/RequestModel.swift b/Sources/NetShears/Models/RequestModel.swift index 368460d..0ba0fa2 100644 --- a/Sources/NetShears/Models/RequestModel.swift +++ b/Sources/NetShears/Models/RequestModel.swift @@ -114,6 +114,7 @@ public final class NetShearsRequestModel: Codable { self.port = nil self.duration = duration self.credentials = [:] + self.isFinished = false } var curlRequest: String {