根據預設,Dev Proxy 會攔截符合devproxyrc.json檔案中所設定 URL 的所有要求。 當您只想要攔截特定要求,例如特定元件發出的要求時,您可以設定 Dev Proxy 來攔截具有特定標頭的要求。
若要攔截具有特定標頭的要求,請在devproxyrc.json檔案中新增filterByHeaders屬性。 在 filterByHeaders 屬性中,指定要用來篩選要求的標頭。 針對每個標頭,指定標頭應該包含的值,讓 Dev Proxy 攔截要求。 如果您將值保留空白,Dev Proxy 會攔截包含指定標頭的要求,而不論其值為何。
範例:攔截具有特定標頭和值的請求
下列範例示範如何設定 Dev Proxy 以攔截包含 x-app 標頭且其值含有 contoso-intranet 的請求。
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json",
"plugins": [
// [...] trimmed for brevity
],
"filterByHeaders": [
{
"name": "x-app",
"value": "contoso-intranet"
}
]
}
使用此組態,Dev Proxy 會攔截包含 x-app 具有 值 contoso-intranet之標頭的要求,例如:
GET https://api.contoso.com/customers
x-app: contoso-intranet
開發代理也會攔截部分相符指定值的請求,例如:
GET https://api.contoso.com/customers
x-app: contoso-intranet-search
Dev Proxy 不會攔截下列要求,因為標頭的值 x-app 不包含 contoso-intranet:
GET https://api.contoso.com/customers
x-app: contoso-public
部分匹配非常方便,能讓您攔截那些值會隨著時間變動的請求,例如元件或 SDK 版本。
範例:不論值為何,攔截具有特定 HTTP 標頭的請求
若要攔截包含特定標頭的要求,不論其值為何,請將值保留空白:
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json",
"plugins": [
// [...] trimmed for brevity
],
"filterByHeaders": [
{
"name": "x-contoso",
"value": ""
}
]
}
使用此組態,Dev Proxy 會攔截包含 x-contoso 標頭的要求,而不論其值為何:
GET https://api.contoso.com/customers
x-contoso: api-sdk v1.0
或:
GET https://api.contoso.com/customers
x-contoso: intranet
Dev Proxy 不會攔截下列要求,因為它沒有 x-contoso 標頭:
GET https://api.contoso.com/customers
x-app: contoso-public