Geliştirme Proxy'si sorunlarını giderme

Yaygın Geliştirme Proxy'si sorunlarını tanılamak ve düzeltmek için bu kılavuzu kullanın. Belirtilerinizle başlayın ve çözümü bulmak için tanılama sorularını inceleyin.

Belirti: Geliştirme Proxy'si istekleri kesmiyor

Geliştirme Proxy'sini başlattınız, ancak uygulamanızın istekleri Dev Proxy çıktısında görünmüyor. Nedenini belirlemek için bu soruları inceleyin.

Dev Proxy çalışıyor mu?

Dev Proxy'nin çalışıp çalışmadığını ve istekleri kesmeye hazır olup olmadığını denetleyin.

Dikkat edilecek bilgi:

Dev Proxy'yi başlattıktan sonra şuna benzer bir çıkış görmeniz gerekir:

 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

Bu çıkışı görmüyorsanız:

Dev Proxy sistem proxy'si olarak kayıtlı mı?

İstekleri otomatik olarak kesmek için Dev Proxy sistem proxy'si olarak kaydedilmelidir. Değilse, uygulamanızın istekleri Dev Proxy'yi tamamen atlar.

macOS'ta denetleme:

  1. Sistem Ayarları> açma
  2. Etkin ağ bağlantınızı seçin
  3. Ayrıntılar'a gidin...>Proxy 'leri
  4. Güvenli HTTP Ara Sunucusu (HTTPS) öğesi 127.0.0.1:8000 olarak ayarlanmış

Windows'da denetleme:

  1. Ayarlar>Ağ ve İnternet Proxy'lerini> açma
  2. El ile vekil sunucu kurulumu altında, vekil sunucunun ayarının 127.0.0.1:8000 olarak yapılmış olduğundan emin olun.

Eğer Development Proxy sistem proxy'si olarak kayıtlı değilse:

Geliştirme Proxy'si yapılandırmanızı denetleyin. Komutunu çalıştırarak devproxy config yapılandırma dosyasını açın ve içermediğinden emin olun:

{
  "asSystemProxy": false
}

Bu ayar varsa ve olarak ayarlandıysa false, kaldırın veya olarak trueayarlayın, ardından Dev Proxy'yi yeniden başlatın.

Doğru URL'leri mi izliyorsunuz?

Dev Proxy yalnızca yapılandırmadaki urlsToWatch desenlerle eşleşen URL'lere yönelik istekleri durdurur.

Nasıl denetlenir?

  1. İzlenen URL'lerin listesini görmek için Dev Proxy başlatma çıktısına bakın.
  2. Bunları uygulamanızın çağıran URL'si ile karşılaştırın

Yaygın sorunlar:

  • Joker karakterler eksik: https://api.example.comhttps://api.example.com/users ile eşleşmiyor. Bunun yerine https://api.example.com/* kullanın.
  • Yanlış etki alanı: Alt etki alanları dahil olmak üzere etki alanı adını iki kez denetleyin
  • HTTP ve HTTPS: Protokolün eşleştiğinden emin olun

URL deseninizi test etmek için:

devproxy --urls-to-watch "https://your-api.com/*"

Ardından API'nize bir istek gönderin ve Dev Proxy'nin bunu günlüğe kaydedip kaydetmediğini denetleyin.

Doğru yapılandırma dosyasını mı kullanıyorsunuz?

Dev Proxy beklediğinizden farklı bir yapılandırma dosyası kullanıyor olabilir.

Geliştirme Proxy'si yapılandırma dosyalarını nasıl bulur:

  1. belirtirseniz --config-fileDev Proxy bu dosyayı kullanır
  2. Aksi takdirde, Geliştirme Proxy'si geçerli dizinde arar devproxyrc.json
  3. Bulunamazsa Dev Proxy varsayılan ayarları kullanır

Hangi yapılandırma dosyasının kullanıldığını doğrulamak için:

Hata ayıklama günlüğü ile Geliştirme Proxy'si çalıştırın:

devproxy --log-level debug

Hangi yapılandırma dosyasının yüklendiğini gösteren çıkışı arayın.

Açıkça bir yapılandırma dosyası belirtmek için:

devproxy --config-file ./my-config.json

Node.js uygulamasıyla Dev Proxy mi kullanıyorsunuz?

Node.js otomatik olarak sistem ara sunucusu ayarlarını kullanmaz. Node.js uygulamanızı proxy'yi açıkça kullanacak şekilde yapılandırmanız gerekir.

Çözüm:

global-agent Paketi kullanın veya HTTP kitaplığınızı ara sunucuyu kullanacak şekilde yapılandırın. Ayrıntılı yönergeler için bkz. Geliştirme Proxy'sini Node.js uygulamalarıyla kullanma .

Global-agent ile hızlı düzeltme:

  1. Global-agent'i yükle:

    npm install global-agent
    
  2. Uygulamanızın giriş noktasına ekleyin:

    import { bootstrap } from 'global-agent';
    bootstrap();
    
  3. Uygulamanızı ara sunucu ortam değişkenleriyle başlatın:

    NODE_TLS_REJECT_UNAUTHORIZED=0 GLOBAL_AGENT_HTTP_PROXY=http://127.0.0.1:8000 node app.js
    

Windows üzerinde PowerShell ile Dev Proxy mi kullanıyorsunuz?

PowerShell, veya Invoke-WebRequestile Invoke-RestMethod yapılan web istekleri için sistem proxy ayarlarını otomatik olarak kullanmaz.

Çözüm:

Parametresini ayarlayarak PowerShell'i proxy sunucusunu kullanacak şekilde -Proxy düzenleyin.

Invoke-WebRequest -Uri "https://api.example.com/data" -Proxy "http://127.0.0.1:8000"

Veya oturumun tamamı için ara sunucuyu ayarlayın:

$env:HTTPS_PROXY = "http://127.0.0.1:8000"
$env:HTTP_PROXY = "http://127.0.0.1:8000"

PowerShell 7+ kullanıyorsanız şunları da kullanabilirsiniz:

[System.Net.WebRequest]::DefaultWebProxy = New-Object System.Net.WebProxy("http://127.0.0.1:8000")

Diğer platformlar ve çerçeveler

Başka platformlar kullanıyorsanız şu kılavuzlara bakın:

Platform Guide
.NET uygulamaları .NET uygulamalarıyla Dev Proxy kullanma
.NET 4.8 uygulamaları .NET 4.8 uygulamaları özel yapılandırma gerektirir
Docker kapsayıcıları Docker kapsayıcısında Dev Proxy kullanma
SharePoint Framework SPFx ile Dev Proxy kullanma

Belirti: İstekler durduruldu ancak değiştirilmeden geçirildi

Geliştirme Proxy'si isteklerinizi çıkışta gösterir, ancak bunlar değiştirilmez, moklanmaz veya simüle edilmiş hatalar döndürülmez.

Eklentileriniz etkinleştirildi mi?

Kullanmak istediğiniz eklentilerin yapılandırmanızda etkinleştirilip etkinleştirilmediğini denetleyin.

Nasıl denetlenir?

Yapılandırma dosyanızı açın ve şunları doğrulayın:

  1. Eklenti dizide plugins listelenir
  2. Eklentinin sahip olduğu "enabled": true
{
  "plugins": [
    {
      "name": "GenericRandomErrorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
    }
  ]
}

Eklentileriniz doğru sırada mı?

Eklenti sırası Dev Proxy'de önemlidir. Eklentiler listelendikleri sırayla yürütülür ve bazıları çalışmadan önce bazı eklentiler işlemeyi durdurabilir.

Yaygın sorun:

MockResponsePlugin daha önce GenericRandomErrorPlugin'dan önce kullanıldıysa, ve bir sahte öğe isteğinizle eşleşiyorsa rastgele hata eklentisi hiçbir zaman çalışmaz.

Çözüm:

Eklentileri istekleri işlemelerini istediğiniz sırayla düzenleyin. Daha fazla bilgi için Sahteler kullanılırken neden rastgele hatalar atılmıyor?'ya bakın.

Sahte URL deseniniz istekle eşleşir mi?

Sahte yanıtlar için URL deseninin istek URL'si ile tam olarak eşleşmesi gerekir.

Denetlenecek şeyler:

  • Sorgu dizesi parametreleri: https://api.example.com/users?id=1 eşleşmiyor https://api.example.com/users
  • Sondaki eğik çizgiler: https://api.example.com/users/, https://api.example.com/users ile eşleşmiyor
  • Büyük/küçük harf duyarlılığı: URL yolları büyük/küçük harfe duyarlıdır

İstek yöntemi doğru mu?

Sahte nesneler yönteme özgüdür. GET istekleri için bir yapılandırma, POST istekleri ile eşleşmiyor.

Nasıl denetlenir?

Simülasyon dosyanızda, method özelliğinin isteğinizle eşleşip eşleşmediğini doğrulayın.

{
  "request": {
    "url": "https://api.example.com/users",
    "method": "GET"
  },
  "response": {
    "statusCode": 200,
    "body": { "users": [] }
  }
}

Belirti: Uygulamanızda SSL/sertifika hataları

Uygulamanız, Dev Proxy aracılığıyla istekte bulunmaya çalışırken SSL veya sertifika hataları oluşturur.

Dev Proxy sertifikanız yüklü mü?

Geliştirme Proxy'si, HTTPS trafiğinin şifresini çözmek için otomatik olarak imzalanan bir sertifika kullanır. Sisteminizin bu sertifikaya güvenmesi gerekir.

Çözüm:

Sertifika yükleme komutunu çalıştırın:

devproxy cert ensure

Bu komut, sisteminize Dev Proxy sertifikasını yükler ve güvenir.

Sertifika güvenilir mi?

Sertifika yüklü olabilir ancak güvenilir olmayabilir.

macOS'ta denetleme:

  1. Anahtarlık Erişimi'ni açma
  2. "Dev Proxy" araması yapın
  3. Sertifikaya çift tıklayın
  4. Güveni Artır
  5. Güvenli Yuva Katmanı'nın (SSL)Her Zaman Güven olarak ayarlandığını doğrulayın

Windows'da denetleme:

  1. certmgr.msc komutunu çalıştırın
  2. Güvenilen Kök Sertifika Yetkilileri> bölümüne gidin ve Sertifikalar kısmını seçin.
  3. Geliştirici Proxy sertifikasını arayın

Sertifikaya güvenilmiyorsa:

Sertifikayı kaldırın ve yeniden yükleyin:

devproxy cert remove
devproxy cert ensure

Node.jskullanıyor musunuz?

Node.js varsayılan olarak sistem sertifika depounu kullanmaz. Aşağıdakilerden birini yapmanız gerekir:

1. Seçenek: Sertifika doğrulamayı devre dışı bırakma (yalnızca geliştirme):

NODE_TLS_REJECT_UNAUTHORIZED=0 node app.js

Uyarı

Asla üretimde kullanmayın NODE_TLS_REJECT_UNAUTHORIZED=0 . Tüm sertifika doğrulamayı devre dışı bırakır.

2. Seçenek: Node.jsIçin Geliştirme Proxy'si sertifikasını ekleyin:

Dev Proxy sertifikasını dışarı aktarın ve ortam değişkenini NODE_EXTRA_CA_CERTS ayarlayın:

NODE_EXTRA_CA_CERTS=/path/to/devproxy-cert.pem node app.js

Farklı bir çalışma zamanı veya çerçeve mi kullanıyorsunuz?

Farklı platformlar sertifikaları farklı işler:

Platform Çözüm
Piton REQUESTS_CA_BUNDLE Veya ortam değişkenlerini kullanma SSL_CERT_FILE
Java Java keystore'a keytool kullanarak sertifika yükleme
.NET Sertifikaya genellikle sistem deposu üzerinden güvenilirlik sağlanır
Docker Sertifikayı bağlama ve CA sertifikalarını kapsayıcıya güncelleştirme

Diğer yaygın sorunlar

Tüm istekler ağ geçidi zaman aşımı nedeniyle başarısızlığa uğrar.

Neden:

Geliştirme Proxy'si hedef API'ye ulaşamıyor.

Çözüm:

Bkz . Ağ geçidi zaman aşımıyla tüm istekler neden başarısız oluyor?

Dev Proxy'si kullanıldıktan sonra İnternet bağlantısı yok

Neden:

Geliştirme Proxy'si sistem proxy'si olarak düzgün bir şekilde kaydını kaldırmaz.

Çözüm:

Bkz . Ara sunucuyu kullandıktan sonra İnternet bağlantım neden çalışmıyor?

Beklenmedik şekilde 429 yanıt alma

Neden:

Hız sınırlama eklentileri etkinleştirilir ve yapılandırılır.

Çözüm:

Bkz . Neden sürekli 429 yanıt alıyorum?

Veritabanı hataları

Hata Çözüm
SqliteConnection başlatma hatası SQLite yapılandırmasını düzeltme
"Veritabanı disk görüntüsü yanlış biçimlendirilmiş" Veritabanını yeniden oluşturma

Daha fazla yardım alın

Çözüm bulamazsanız:

  1. Hata ayıklama günlüğünü etkinleştir: Ayrıntılı çıktı için bu komutu çalıştırın devproxy --log-level debug
  2. Mevcut sorunları ara: Geliştirici Ara Sunucusu GitHub sorunları
  3. Yardım isteyin: Yardım ve destek alın

Ayrıca bakınız