Partilhar via


Interceptar solicitações com cabeçalhos específicos

De relance
Objetivo: Filtrar por cabeçalhos específicos
Tempo: 5 minutos
Plugins: Nenhuma
Pré-requisitos:Configurar o Proxy de Desenvolvimento

Por padrão, o Dev Proxy interceta todas as solicitações que correspondem às URLs configuradas no arquivo devproxyrc.json . Quando quiser intercetar apenas solicitações específicas, como solicitações emitidas por um componente específico, você pode configurar o Proxy de Desenvolvimento para intercetar solicitações com cabeçalhos específicos.

Para intercetar solicitações com cabeçalhos específicos, no devproxyrc.json arquivo, adicione a filterByHeaders propriedade. Na propriedade filterByHeaders, especifique os cabeçalhos que pretende usar para filtrar as solicitações. Para cada cabeçalho, especifique o valor que o cabeçalho deve conter para o Dev Proxy intercetar a solicitação. Se você deixar o valor vazio, o Proxy de Desenvolvimento intercetará solicitações que contenham o cabeçalho especificado, independentemente de seu valor.

Exemplo: intercetar solicitações com um cabeçalho e um valor específicos

O exemplo a seguir demonstra como configurar o Dev Proxy para intercetar solicitações que contêm o x-app cabeçalho com um valor que contém contoso-intranet:

Ficheiro: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"
    }
  ]
}

Usando essa configuração, o Dev Proxy interceta solicitações que contêm o x-app cabeçalho com o valor contoso-intranet, por exemplo:

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

O Dev Proxy também interceta solicitações que correspondem parcialmente ao valor especificado, por exemplo:

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

O Proxy de Desenvolvimento não interceta a seguinte solicitação porque o valor do cabeçalho x-app não contém contoso-intranet:

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

A correspondência parcial é conveniente e permite intercetar solicitações com valores que podem mudar ao longo do tempo, como componente ou versão do SDK.

Exemplo: intercetar solicitações com um cabeçalho específico, independentemente do valor

Para intercetar solicitações que contenham um cabeçalho específico, independentemente de seu valor, deixe o valor vazio:

Ficheiro: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": ""
    }
  ]
}

Usando essa configuração, o Dev Proxy interceta solicitações que contêm o x-contoso cabeçalho, independentemente de seu valor:

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

Ou:

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

O Dev Proxy não interceta a seguinte solicitação porque não tem o x-contoso cabeçalho:

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

Consulte também