"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > क्रोम एक्सटेंशन में HTTP रिस्पांस बॉडी कैसे प्राप्त करें: क्या यह संभव है?

क्रोम एक्सटेंशन में HTTP रिस्पांस बॉडी कैसे प्राप्त करें: क्या यह संभव है?

2024-11-08 को प्रकाशित
ब्राउज़ करें:242

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

क्रोम एक्सटेंशन में HTTP रिस्पॉन्स बॉडी कैसे प्राप्त करें

क्रोम एक्सटेंशन बैकग्राउंड स्क्रिप्ट के भीतर HTTP रिस्पॉन्स बॉडी पुनर्प्राप्त करना एक चुनौती पेश करता है। जबकि एक्सटेंशन chrome.webRequest.onBeforeRequest का उपयोग करके अनुरोध निकाय तक पहुंच सकता है, प्रतिक्रिया निकाय प्राप्त करना आम तौर पर संभव नहीं है।

इस सीमा को पार करने के लिए, एक रचनात्मक दृष्टिकोण में chrome.debugger API का लाभ उठाना शामिल है। यह एपीआई एक्सटेंशन को ब्राउज़र की नेटवर्क गतिविधि के साथ डीबग करने और इंटरैक्ट करने की अनुमति देता है। यहां एक विस्तृत कार्यान्वयन है:

  1. chrome.tabs.query और chrome.debugger.attach का उपयोग करके वर्तमान टैब से कनेक्शन स्थापित करें।
  2. Network.enable कमांड भेजकर नेटवर्क डिबगिंग सक्षम करें टैब पर।
  3. Network.responseReceived इवेंट के लिए एक इवेंट श्रोता को पंजीकृत करें।
  4. जब कोई प्रतिक्रिया प्राप्त होती है, तो इवेंट पैरामीटर से requestId निर्दिष्ट करते हुए 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