Saya ingin melihat permintaan jaringan saya di React Native untuk membantu saya men-debug - idealnya di tab 'Jaringan' dari devtools Chrome.
Ada beberapa masalah tertutup tentang ini di GitHub ( https://github.com/facebook/react-native/issues/4122 dan https://github.com/facebook/react-native/issues/934 ) tetapi saya tidak ' t sepenuhnya memahami mereka. Sepertinya saya perlu membatalkan beberapa polyfill React Native dan kemudian menjalankan beberapa perintah dengan flag debugging tambahan, dan mungkin mengubah beberapa pengaturan keamanan Chrome? Dan tampaknya ada beberapa masalah keamanan yang terlibat dalam melakukan ini yang mungkin menjadikannya ide yang buruk, tetapi tidak ada yang terlibat dalam utas ini yang secara eksplisit menyatakan apa itu.
Dapatkah seseorang memberikan panduan langkah demi langkah untuk membuat tab Jaringan bekerja dengan React Native, serta penjelasan tentang masalah keamanan yang terlibat dalam melakukannya?
sumber
Enable Network Inspect
agar berhasil. Secara default, tidak.Inilah yang telah saya gunakan di titik masuk aplikasi saya
EDIT: frevib ditautkan ke sintaks yang lebih ringkas di bawah ini. Terima kasih frevib!
Penjelasan:
GLOBAL.originalXMLHttpRequest
merujuk salinan XHR Alat Dev Chrome. Ini disediakan oleh RN sebagai pintu keluar masuk. Solusi Shvetusya hanya akan berfungsi jika alat pengembang terbuka dan dengan demikian menyediakanXMLHttpRequest
.EDIT: Anda harus mengizinkan permintaan lintas sumber saat dalam mode debugger. Dengan chrome Anda dapat menggunakan plugin praktis ini .
EDIT: Baca tentang masalah github RN yang mengarahkan saya ke solusi ini
sumber
Uncaught Error: unsupported BodyInit type at Response.Body._initBody (fetch.js:231) at new Response (fetch.js:390) at XMLHttpRequest.xhr.onload (fetch.js:437)
Saya menggunakan yang berikut ini di aplikasi saya (Tambahkan ini di file titik masuk app.js utama Anda):
Hal terbaiknya adalah ini juga menampilkan log pengambilan di konsol juga yang diformat dengan baik.
Tangkapan layar:
Di tab jaringan:
sumber
Saya menggunakan Reactotron untuk melacak permintaan jaringan.
sumber
Saya tahu ini adalah pertanyaan lama, tetapi ada cara yang jauh lebih aman untuk melakukan ini sekarang yang tidak memerlukan penonaktifan CORS atau mengubah kode sumber React Native. Anda dapat menggunakan pustaka pihak ketiga yang disebut Reactotron yang tidak hanya melacak panggilan API (menggunakan plugin jaringan), tetapi juga dapat melacak penyimpanan Redux Anda, dan Sagas dengan penyiapan tambahan:
https://github.com/infinitered/reactotron https://github.com/infinitered/reactotron/blob/master/docs/plugin-networking.md
sumber
Saya dapat men-debug permintaan saya di Chrome dengan menghapus polyfill yang disediakan React Native setelah mengimpor React Native.
Ini berhasil untuk saya untuk permintaan asal yang sama. Tidak yakin apakah Anda perlu menonaktifkan CORS di Chrome untuk membuatnya berfungsi untuk lintas sumber.
sumber
Di masa lalu saya menggunakan
GLOBAL.XMLHttpRequest
retas untuk melacak permintaan API saya, tetapi terkadang sangat lambat dan tidak berfungsi untuk permintaan aset. Saya memutuskan untuk menggunakanPostman’s proxy
fitur untuk memeriksa komunikasi HTTP keluar dari telepon. Untuk detailnya lihat dokumentasi resminya , tetapi pada dasarnya, ada tiga langkah mudah:$ ifconfig
)sumber
Harap berhati-hati dengan kode ini.
Ini membantu dan bagus, tetapi merusak unggahan. Saya menghabiskan 2 hari mencoba untuk mencari tahu mengapa file yang diunggah mengirim [Objek Objek] daripada file yang sebenarnya. Alasannya adalah kode di atas.
Gunakan ini untuk panggilan biasa tidak tetapi untuk panggilan data multi bagian / formulir
sumber
Saya sarankan menggunakan Charles untuk memeriksa permintaan jaringan Anda. Ini sangat bagus dan memberikan lebih banyak visibilitas dan memungkinkan Anda melakukan hal-hal tingkat lanjut.
http://charlesproxy.com
sumber
http://localhost:8081/index.android.bundle?platform=android&dev=true
.. bagaimana membuatnya menangkap SEMUA permintaan? (Saya menekan api eksternal)Jika Anda ingin men-debug permintaan jaringan pada versi rilis aplikasi Anda, Anda dapat menggunakan library react-native-network-logger . Ini memungkinkan Anda memantau dan melihat permintaan jaringan dalam aplikasi dari layar debug khusus.
Anda kemudian dapat meletakkan ini di belakang bendera build atau bendera jaringan untuk menonaktifkannya bagi pengguna di aplikasi produksi.
Instal saja dengan
yarn add react-native-network-logger
lalu tambahkan ini di titik masuk aplikasi Anda:Dan ini di layar debug:
Penafian: Saya pembuat paket.
sumber
Jika Anda memiliki ponsel atau emulator android,
npx react-native start
Kemudian buka Android Studio .
Buka
android
folder proyek Anda sebagai Proyek Android Studio.Klik ikon biru itu yang merupakan Android Profiler
Setelah Android Profiler dimulai, Anda dapat menambahkan aplikasi Anda melalui ikon plus abu-abu di dekat
SESSIONS
labelSekarang Anda dapat memeriksa jaringan melalui alat ini. Anda dapat melihat segitiga yang menunjukkan aktivitas jaringan Anda.
Silakan periksa ini untuk info lebih lanjut tentang memeriksa lalu lintas jaringan .
sumber
Tambahkan Debugger di js tempat Anda dapat melihat req atau respons
sumber