Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Gunakan panduan ini untuk mendiagnosis dan memperbaiki masalah Umum Dev Proxy. Mulailah dengan gejala Anda dan kerjakan pertanyaan diagnostik untuk menemukan solusinya.
Gejala: Dev Proxy tidak mencegat permintaan
Anda memulai Dev Proxy, tetapi permintaan aplikasi Anda tidak muncul di output Dev Proxy. Lakukan pertanyaan-pertanyaan ini untuk mengidentifikasi penyebabnya.
Apakah Dev Proxy berjalan?
Periksa apakah Dev Proxy berjalan dan siap untuk mencegat permintaan.
Apa yang harus dicari:
Setelah memulai Dev Proxy, Anda akan melihat output yang mirip dengan:
info Dev Proxy API listening on http://127.0.0.1:8897...
info Dev Proxy listening on 127.0.0.1:8000...
Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy
Jika Anda tidak melihat output ini:
- Periksa apakah Proksi Dev diinstal dengan benar dengan menjalankan
devproxy --version - Jika Anda mendapatkan kesalahan, instal ulang Dev Proxy
Apakah Dev Proxy terdaftar sebagai proksi sistem?
Dev Proxy harus didaftarkan sebagai proksi sistem untuk mencegat permintaan secara otomatis. Jika bukan, permintaan aplikasi Anda tidak menggunakan Dev Proxy sama sekali.
Cara memeriksa macOS:
- Buka Pengaturan Sistem>Jaringan
- Pilih koneksi jaringan aktif Anda
- Buka Detail...>Proksi
- Cari Proksi HTTP Aman (HTTPS) yang diatur ke
127.0.0.1:8000
Cara memeriksa Windows:
- Buka
Pengaturan Jaringan & Internet Proksi - Di bawah Penyiapan proksi manual, periksa apakah server proksi diatur ke
127.0.0.1:8000
Jika Dev Proxy tidak terdaftar sebagai proksi sistem:
Periksa konfigurasi Proksi Dev Anda. Jalankan devproxy config untuk membuka file konfigurasi dan verifikasi bahwa file tersebut tidak berisi:
{
"asSystemProxy": false
}
Jika pengaturan ini ada dan diatur ke false, hapus atau atur ke true, lalu mulai ulang Proksi Dev.
Apakah Anda menonton URL yang benar?
Dev Proxy hanya mencegat permintaan ke URL yang sesuai pola konfigurasi di urlsToWatch.
Cara memeriksa:
- Lihat keluaran startup Dev Proxy untuk daftar URL yang sedang dipantau
- Bandingkan dengan URL yang dipanggil aplikasi Anda
Masalah umum:
-
Wildcard hilang:
https://api.example.comtidak cocok denganhttps://api.example.com/users. Gunakanhttps://api.example.com/*sebagai gantinya. - Domain yang salah: Periksa kembali nama domain, termasuk subdomain
- HTTP vs HTTPS: Pastikan protokol cocok
Untuk menguji pola URL Anda:
devproxy --urls-to-watch "https://your-api.com/*"
Kemudian buat permintaan ke API Anda dan periksa apakah Dev Proxy mencatatnya.
Apakah Anda menggunakan file konfigurasi yang benar?
Proksi Dev mungkin menggunakan file konfigurasi yang berbeda dari yang Anda harapkan.
Cara Dev Proxy menemukan file konfigurasi:
- Jika Anda menentukan
--config-file, Proksi Dev menggunakan file tersebut - Jika tidak, Dev Proxy mencari
devproxyrc.jsondi direktori saat ini - Jika tidak ditemukan, Dev Proxy menggunakan pengaturan default
Untuk memverifikasi file konfigurasi mana yang sedang digunakan:
Jalankan Proxy Dev dengan log debug:
devproxy --log-level debug
Cari output yang menunjukkan file konfigurasi mana yang dimuat.
Untuk secara eksplisit menentukan file konfigurasi:
devproxy --config-file ./my-config.json
Apakah Anda menggunakan Dev Proxy dengan aplikasi Node.js?
Node.js tidak secara otomatis menggunakan pengaturan proksi sistem. Anda perlu mengonfigurasi aplikasi Node.js untuk menggunakan proksi secara eksplisit.
Solution:
Gunakan paket global-agent atau konfigurasikan pustaka HTTP Anda untuk menggunakan proksi. Lihat Menggunakan Dev Proxy dengan aplikasi Node.js untuk instruksi terperinci.
Solusi cepat dengan global-agent:
Instalasi agen global:
npm install global-agentTambahkan ke titik masuk aplikasi Anda:
import { bootstrap } from 'global-agent'; bootstrap();Mulai aplikasi Anda dengan variabel lingkungan proksi:
NODE_TLS_REJECT_UNAUTHORIZED=0 GLOBAL_AGENT_HTTP_PROXY=http://127.0.0.1:8000 node app.js
Apakah Anda menggunakan Dev Proxy dengan PowerShell di Windows?
PowerShell tidak secara otomatis menggunakan pengaturan proksi sistem untuk permintaan web yang dibuat dengan Invoke-WebRequest atau Invoke-RestMethod.
Solution:
Konfigurasikan PowerShell untuk menggunakan proksi dengan mengatur -Proxy parameter:
Invoke-WebRequest -Uri "https://api.example.com/data" -Proxy "http://127.0.0.1:8000"
Atau atur proksi untuk seluruh sesi:
$env:HTTPS_PROXY = "http://127.0.0.1:8000"
$env:HTTP_PROXY = "http://127.0.0.1:8000"
Jika Anda menggunakan PowerShell 7+, Anda juga bisa menggunakan:
[System.Net.WebRequest]::DefaultWebProxy = New-Object System.Net.WebProxy("http://127.0.0.1:8000")
Platform dan kerangka kerja lainnya
Jika Anda menggunakan platform lain, periksa panduan berikut:
| Platform | Panduan |
|---|---|
| Aplikasi .NET | Gunakan Dev Proxy dengan aplikasi .NET |
| Aplikasi .NET 4.8 | Aplikasi .NET 4.8 memerlukan konfigurasi khusus |
| Kontainer Docker | Menggunakan Proksi Dev dalam kontainer Docker |
| SharePoint Framework | Menggunakan Dev Proxy dengan SPFx |
Gejala: Permintaan dicegat tetapi dialihkan dalam keadaan tidak berubah
Dev Proxy menunjukkan permintaan Anda dalam output, tetapi tidak dimodifikasi, ditipu, atau mengembalikan kesalahan yang disimulasikan.
Apakah plugin Anda diaktifkan?
Periksa apakah plugin yang ingin Anda gunakan diaktifkan dalam konfigurasi Anda.
Cara memeriksa:
Buka file konfigurasi Anda dan verifikasi bahwa:
- Plugin tercantum dalam
pluginsarray - Plugin memiliki
"enabled": true
{
"plugins": [
{
"name": "GenericRandomErrorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
}
]
}
Apakah plugin Anda dalam urutan yang benar?
Urutan plugin penting di Dev Proxy. Plugin dijalankan dalam urutan yang tercantum, dan beberapa plugin mungkin berhenti diproses sebelum yang lain berjalan.
Masalah umum:
Jika Anda memiliki MockResponsePlugin sebelum GenericRandomErrorPlugin, dan tiruan cocok dengan permintaan Anda, plugin kesalahan acak tidak pernah berjalan.
Solution:
Atur plugin dalam urutan yang Anda inginkan untuk memproses permintaan. Untuk informasi selengkapnya, lihat Mengapa kesalahan acak tidak dilemparkan saat menggunakan tiruan?.
Apakah pola URL tiruan Anda cocok dengan permintaan?
Untuk respons tiruan, pola URL harus sama persis dengan URL permintaan.
Hal-hal yang perlu diperiksa:
- Parameter string kueri:
https://api.example.com/users?id=1tidak cocokhttps://api.example.com/users - Garis miring berikutnya:
https://api.example.com/users/tidak cocokhttps://api.example.com/users - Kepekaan huruf: Jalur URL peka terhadap huruf besar/kecil
Apakah metode permintaan sudah benar?
Tiruan khusus metode. Tiruan permintaan untuk GET tidak cocok dengan permintaan untuk POST.
Cara memeriksa:
Dalam file tiruan Anda, verifikasikan bahwa properti method sesuai dengan permintaan Anda.
{
"request": {
"url": "https://api.example.com/users",
"method": "GET"
},
"response": {
"statusCode": 200,
"body": { "users": [] }
}
}
Gejala: Kesalahan SSL/sertifikat di aplikasi Anda
Aplikasi Anda melemparkan kesalahan SSL atau sertifikat saat mencoba membuat permintaan melalui Dev Proxy.
Apakah Anda memiliki sertifikat Proksi Dev yang terinstal?
Dev Proxy menggunakan sertifikat yang ditandatangani sendiri untuk mendekripsi lalu lintas HTTPS. Sistem Anda harus mempercayai sertifikat ini.
Solution:
Jalankan perintah penginstalan sertifikat:
devproxy cert ensure
Perintah ini menginstal dan mempercayai sertifikat Dev Proxy pada sistem Anda.
Apakah sertifikat tepercaya?
Sertifikat mungkin diinstal tetapi tidak tepercaya.
Cara memeriksa macOS:
- Buka Keychain Access
- Cari "Dev Proxy"
- Klik dua kali pada sertifikat
- Perluas Kepercayaan
- Verifikasi bahwa Secure Sockets Layer (SSL) diatur ke Always Trust
Cara memeriksa Windows:
- Jalankan
certmgr.msc - Navigasi ke Otoritas Sertifikasi Akar Tepercaya>Sertifikat
- Cari sertifikat Proksi Dev
Jika sertifikat tidak tepercaya:
Hapus dan instal ulang sertifikat:
devproxy cert remove
devproxy cert ensure
Apakah Anda menggunakan Node.js?
Node.js tidak menggunakan penyimpanan sertifikat sistem secara default. Anda perlu memilih satu dari dua opsi berikut:
Opsi 1: Nonaktifkan validasi sertifikat (hanya pengembangan):
NODE_TLS_REJECT_UNAUTHORIZED=0 node app.js
Peringatan
Tidak pernah digunakan NODE_TLS_REJECT_UNAUTHORIZED=0 dalam produksi. Ini menonaktifkan semua validasi sertifikat.
Opsi 2: Tambahkan sertifikat Proksi Dev ke Node.js:
Ekspor sertifikat Proksi Dev dan atur NODE_EXTRA_CA_CERTS variabel lingkungan:
NODE_EXTRA_CA_CERTS=/path/to/devproxy-cert.pem node app.js
Apakah Anda menggunakan runtime atau kerangka kerja yang berbeda?
Platform yang berbeda menangani sertifikat secara berbeda:
| Platform | Solusi |
|---|---|
| Phyton | Menggunakan REQUESTS_CA_BUNDLE variabel lingkungan atau SSL_CERT_FILE |
| Java | Mengimpor sertifikat ke keystore Java menggunakan keytool |
| .NET | Sertifikat biasanya dipercaya melalui penyimpanan sistem |
| Docker | Memasang sertifikat dan memperbarui sertifikat CA dalam kontainer |
Masalah umum lainnya
Semua permintaan gagal dengan batas waktu gateway
Penyebab:
Dev Proxy tidak dapat menjangkau API target.
Solution:
Lihat Mengapa semua permintaan gagal dengan batas waktu gateway?
Tidak ada koneksi internet setelah menggunakan Dev Proxy
Penyebab:
Proksi Dev tidak mendaftar ulang dengan benar sebagai proksi sistem.
Solution:
Lihat Mengapa koneksi internet saya tidak berfungsi setelah menggunakan proksi?
Mendapatkan 429 respons secara tak terduga
Penyebab:
Plugin pembatasan laju diaktifkan dan dikonfigurasi.
Solution:
Lihat Mengapa saya terus mendapatkan 429 respons?
Kesalahan database
| Kesalahan | Solusi |
|---|---|
| Kesalahan inisialisasi SqliteConnection | Memperbaiki konfigurasi SQLite |
| "Gambar disk database salah bentuk" | Membangun kembali database |
Dapatkan bantuan lainnya
Jika Anda tidak dapat menemukan solusi:
-
Aktifkan pengelogan debug: Jalankan
devproxy --log-level debuguntuk output terperinci - Mencari masalah yang ada: Masalah Dev Proxy GitHub
- Minta bantuan: Dapatkan bantuan dan dukungan