Cara Menghurai Badan Respons HTTP dalam Sambungan Chrome
Dalam pembangunan penyemak imbas, mengakses badan respons HTTP boleh menimbulkan cabaran, terutamanya apabila bekerja dalam Skrip latar belakang sambungan Chrome. Walaupun mungkin untuk mengakses badan permintaan HTTP menggunakan acara 'chrome.webRequest.onBeforeRequest', mendapatkan semula badan tindak balas memerlukan pendekatan yang lebih rumit.
Satu penyelesaian yang berpotensi, seperti yang dinyatakan dalam urutan Stack Overflow yang dirujuk "Chrome sambungan untuk membaca respons HTTP," melibatkan penggunaan API 'chrome.devtools.network'. Dengan melampirkan penyahpepijat pada tab semasa dan mendayakan Rangkaian dalam penyahpepijat, ia menjadi mungkin untuk mendengar acara "Network.responseReceived". Apabila peristiwa ini dicetuskan, anda boleh menggunakan kaedah 'chrome.debugger.sendCommand' untuk mendapatkan semula badan respons untuk ID permintaan tertentu.
Berikut ialah contoh coretan yang menunjukkan pendekatan ini:
<code class="javascript">var currentTab; var version = "1.0"; chrome.tabs.query( { currentWindow: true, active: true }, function(tabArray) { currentTab = tabArray[0]; chrome.debugger.attach({ tabId: currentTab.id }, version, onAttach.bind(null, currentTab.id)); } ); function onAttach(tabId) { chrome.debugger.sendCommand({ tabId: tabId }, "Network.enable"); chrome.debugger.onEvent.addListener(allEventHandler); } function allEventHandler(debuggeeId, message, params) { if (currentTab.id != debuggeeId.tabId) { return; } if (message == "Network.responseReceived") { chrome.debugger.sendCommand({ tabId: debuggeeId.tabId }, "Network.getResponseBody", { "requestId": params.requestId }, function(response) { // You get the response body here! // You can close the debugger tips by: chrome.debugger.detach(debuggeeId); }); } }</code>
Kaedah ini agak menyeluruh, menawarkan akses kepada kedua-dua pengepala respons dan badan respons itu sendiri. Walau bagaimanapun, ia melibatkan membuat sesi penyahpepijat dan melampirkannya pada tab semasa, yang mungkin memperkenalkan kerumitan tambahan atau pertimbangan prestasi.
Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Mengakses Badan Respons HTTP dalam Sambungan Chrome?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!