 
 public extension LZRequest {
 	func array(_ response:@escaping ([Any]?)->Void) {
-		self.session.dataTask(with: request) { (data, resp, error) in
+		let url = request.url?.absoluteString ?? "[unknown]"
+		let body = request.httpBody?.string ?? "[empty]"
+		let header = request.allHTTPHeaderFields
+		self.session.dataTask(with: request) { [url, body, header] (data, resp, error) in
 			if let data = data {
+				print("\nRequest success [array]: \(resp), error: \(error), url: \(url)")
+				print("header---> ", header ?? "[empty]")
+				print("body---> ", body)
+				
 				if let json = (try? JSONSerialization.jsonObject(with: data, options: .allowFragments) ) as? [Any] {
 					OperationQueue.main.addOperation { response(json) }
 				} else {

		let header = request.allHTTPHeaderFields
		self.session.dataTask(with: request) { [url, body, header] (data, resp, error) in
			if let data = data {
				if let json = (try? JSONSerialization.jsonObject(with: data, options: .allowFragments) ) as? [AnyHashable:Any] {
					OperationQueue.main.addOperation { response(json) }
				} else {
					print("Json array parser error: \(data)")
					OperationQueue.main.addOperation { response(nil) }
				}
			} else {
				print("Request error [dict]: \(resp), error: \(error), url: \(url)")
				print("header---> ", header ?? "[empty]")
				print("body---> ", body)
				OperationQueue.main.addOperation { response(nil) }

					OperationQueue.main.addOperation { response(nil) }
				}
			} else {
				print("\nRequest error [array]: \(resp), error: \(error), url: \(url)")
				print("header---> ", header ?? "[empty]")
				print("body---> ", body)
				OperationQueue.main.addOperation { response(nil) }
			}
		}.resume()
