Bagikan melalui


Mencegat permintaan dengan header tertentu

Sekilas
Tujuan: Memfilter menurut header tertentu
Waktu: 5 menit
Plugin: Tidak
Prasyarat:Menyiapkan Proksi Dev

Secara default, Dev Proxy mencegat semua permintaan yang cocok dengan URL yang dikonfigurasi dalam file devproxyrc.json . Saat Anda hanya ingin mencegat permintaan tertentu, seperti permintaan yang dikeluarkan oleh komponen tertentu, Anda dapat mengonfigurasi Dev Proxy untuk mencegat permintaan dengan header tertentu.

Untuk mencegat permintaan dengan header tertentu, di dalam berkas devproxyrc.json, tambahkan atribut filterByHeaders. filterByHeaders Di properti , tentukan header yang ingin Anda gunakan untuk memfilter permintaan. Untuk setiap header, tentukan nilai yang harus dimuat header sehingga Dev Proxy dapat mencegat permintaan. Jika Anda membiarkan nilai kosong, Dev Proxy akan mencegat permintaan yang berisi header yang ditentukan, terlepas dari nilainya.

Contoh: Mencegat permintaan dengan header dan nilai tertentu

Contoh berikut menunjukkan cara mengonfigurasi Dev Proxy untuk mencegat permintaan yang berisi x-app header dengan nilai yang berisi contoso-intranet:

File:devproxyrc.json

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "GenericRandomErrorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
    }
  ],
  "urlsToWatch": [
    "https://api.contoso.com/*"
  ],
  "filterByHeaders": [
    {
      "name": "x-app",
      "value": "contoso-intranet"
    }
  ]
}

Dengan menggunakan konfigurasi ini, Dev Proxy mencegat permintaan yang berisi x-app header dengan nilai contoso-intranet, misalnya:

GET https://api.contoso.com/customers
x-app: contoso-intranet

Dev Proxy juga mencegat permintaan yang sebagian cocok dengan nilai yang ditentukan, misalnya:

GET https://api.contoso.com/customers
x-app: contoso-intranet-search

Proksi Dev tidak mencegat permintaan berikut karena nilai x-app header tidak berisi contoso-intranet:

GET https://api.contoso.com/customers
x-app: contoso-public

Pencocokan parsial nyaman dan memungkinkan Anda untuk mencegat permintaan dengan nilai yang dapat berubah dari waktu ke waktu, seperti komponen atau versi SDK.

Contoh: Mencegat permintaan dengan header tertentu tidak peduli nilainya

Untuk mencegat permintaan yang berisi header tertentu, terlepas dari nilainya, biarkan nilai kosong:

File:devproxyrc.json

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "GenericRandomErrorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
    }
  ],
  "urlsToWatch": [
    "https://api.contoso.com/*"
  ],
  "filterByHeaders": [
    {
      "name": "x-contoso",
      "value": ""
    }
  ]
}

Dengan menggunakan konfigurasi ini, Dev Proxy mencegat permintaan yang berisi x-contoso header, terlepas dari nilainya:

GET https://api.contoso.com/customers
x-contoso: api-sdk v1.0

Atau:

GET https://api.contoso.com/customers
x-contoso: intranet

Proksi Dev tidak mencegat permintaan berikut karena tidak memiliki x-contoso header:

GET https://api.contoso.com/customers
x-app: contoso-public

Lihat juga