@@ -84,11 +84,32 @@ protocol HTTPMarkerDelegate: AnyObject {
8484 ///
8585 /// Note: Make sure you don't call any methods on this HTTPMarker after you called finish
8686 @objc public func finish( response: URLResponse ? , error: Error ? ) {
87- let statusCode = ( response as? HTTPURLResponse ) ? . statusCode ?? 400
87+ let httpURLResponse = ( response as? HTTPURLResponse )
88+ let statusCode = httpURLResponse? . statusCode ?? 400
8889 let size = response != nil ? HTTPMarker . Size ( response!) : nil
90+
91+ var bothHeaders : HTTPHeader = [ : ]
92+ let filter = Instana . current? . monitors. http? . filter
93+ if filter != nil , filter!. needHeaderFields ( ) {
94+ // this header means http request header
95+ header? . forEach { key, value in
96+ if filter!. shouldUseHeaderField ( key: key) {
97+ bothHeaders [ key] = value
98+ }
99+ }
100+
101+ ( httpURLResponse? . allHeaderFields) ? . forEach { key, value in
102+ let key = key as? String
103+ let value = value as? String
104+ if key != nil , value != nil , filter!. shouldUseHeaderField ( key: key!) {
105+ bothHeaders [ key!] = value!
106+ }
107+ }
108+ }
109+
89110 let result = HTTPCaptureResult ( statusCode: statusCode,
90111 backendTracingID: response? . backendTracingID,
91- header: header ,
112+ header: bothHeaders ,
92113 responseSize: responseSize ?? size,
93114 error: error)
94115 finish ( result)
0 commit comments