diff --git a/src/main/java/tracker/DataCaptureProxy.java b/src/main/java/tracker/DataCaptureProxy.java
index 4d2737f..be7d9f6 100644
--- a/src/main/java/tracker/DataCaptureProxy.java
+++ b/src/main/java/tracker/DataCaptureProxy.java
@@ -16,10 +16,12 @@
 
     private final String trackerHost;
     private final int    trackerPort;
+    private final Tracker tracker;
 
     public DataCaptureProxy(String trackerHost, int trackerPort) {
         this.trackerHost = trackerHost;
         this.trackerPort = trackerPort;
+        this.tracker = new Tracker(); // 初始化Tracker实例
     }
 
     @Override
@@ -37,6 +39,27 @@
                 ", passkey=" + passkey
             );
 
+            // 调用Tracker方法更新上传和下载数据
+            if (passkey != null && !passkey.isEmpty()) {
+                try {
+                    if (uploaded != null && !uploaded.isEmpty()) {
+                        int uploadValue = Integer.parseInt(uploaded);
+                        if (uploadValue > 0) {
+                            tracker.AddUpLoad(passkey, uploadValue);
+                        }
+                    }
+                    
+                    if (downloaded != null && !downloaded.isEmpty()) {
+                        int downloadValue = Integer.parseInt(downloaded);
+                        if (downloadValue > 0) {
+                            tracker.AddDownload(passkey, downloadValue);
+                        }
+                    }
+                } catch (NumberFormatException e) {
+                    System.err.println("Error parsing upload/download values: " + e.getMessage());
+                }
+            }
+
             // 构造转发 URL
             String path  = req.getPath().getPath();
             String query = req.getQuery().toString();
