"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية استرداد نص استجابة HTTP في ملحقات Chrome: هل هذا ممكن؟

كيفية استرداد نص استجابة HTTP في ملحقات Chrome: هل هذا ممكن؟

تم النشر بتاريخ 2024-11-08
تصفح:235

How to Retrieve HTTP Response Body in Chrome Extensions:  Is it Possible?

كيفية استرداد نص استجابة HTTP في ملحقات Chrome

يمثل استرداد نص استجابة HTTP داخل البرنامج النصي لخلفية ملحق Chrome تحديًا. على الرغم من أن الامتداد يمكنه الوصول إلى نص الطلب باستخدام chrome.webRequest.onBeforeRequest، إلا أن الحصول على نص الاستجابة غير ممكن عادةً.

للتغلب على هذا القيد، يتضمن النهج الإبداعي الاستفادة من واجهة برمجة تطبيقات chrome.debugger. تتيح واجهة برمجة التطبيقات هذه للإضافات تصحيح الأخطاء والتفاعل مع نشاط شبكة المتصفح. فيما يلي تنفيذ تفصيلي:

  1. إنشاء اتصال بعلامة التبويب الحالية باستخدام chrome.tabs.query وchrome.debugger.attach.
  2. تمكين تصحيح أخطاء الشبكة عن طريق إرسال الأمر Network.enable إلى علامة التبويب.
  3. تسجيل مستمع الحدث لأحداث Network.responseReceived.
  4. عند تلقي استجابة، أرسل أمر Network.getResponseBody محددًا معرف الطلب من معلمات الحدث.
  5. سيتم إرجاع نص الاستجابة بواسطة الأمر، مما يسمح لك بمعالجته حسب الحاجة.
// Attach to the current tab and enable network debugging.
chrome.tabs.query({ currentWindow: true, active: true }, tabs => {
  chrome.debugger.attach({ tabId: tabs[0].id }, '1.0', debuggeeId => {
    chrome.debugger.sendCommand({ tabId: debuggeeId.tabId }, 'Network.enable');
  });
});

// Listen for response received events.
chrome.debugger.onEvent.addListener((debuggeeId, message, params) => {
  if (debuggeeId.tabId !== currentTab.id) return;
  if (message === 'Network.responseReceived') {
    // Get the response body by sending a command.
    chrome.debugger.sendCommand({ tabId: debuggeeId.tabId }, 'Network.getResponseBody', { requestId: params.requestId }, response => {
      // The response body is now available.
      // ... Process the response body ...
    });
  }
});

تتيح لك هذه الطريقة استرداد نص استجابة HTTP دون الحاجة إلى صفحات متصفح إضافية أو خدمات خارجية. لاحظ أنه يمكنك إغلاق جلسة تصحيح الأخطاء باستخدام chrome.debugger.detach عند الانتهاء.

بيان الافراج أعيد طبع هذه المقالة على: 1729758196 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3