Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
На первый взгляд
Цель: Фильтрация по определенным заголовкам
Время: 5 минут
Плагины: Отсутствуют
Предварительные требования:настройка прокси-сервера разработки
По умолчанию прокси-сервер разработки перехватывает все запросы, соответствующие URL-адресам, настроенным в файле devproxyrc.json . Если вы хотите перехватывать только определенные запросы, например запросы, выданные определенным компонентом, можно настроить прокси-сервер разработки для перехвата запросов с определенными заголовками.
Чтобы перехватывать запросы с определенными заголовками, в файле devproxyrc.json добавьте свойство filterByHeaders. В свойстве filterByHeaders укажите заголовки, которые необходимо использовать для фильтрации запросов. Для каждого заголовка укажите значение, которое он должен содержать, чтобы Dev Proxy перехватил запрос. Если значение остается пустым, прокси-сервер разработки перехватывает запросы, содержащие указанный заголовок, независимо от его значения.
Пример: перехват запросов с определенным заголовком и значением
В следующем примере показано, как настроить Dev Proxy для перехвата запросов с заголовком x-app, имеющим значение contoso-intranet.
Файл:devproxyrc.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.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"
}
]
}
Используя эту конфигурацию, 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
Прокси-сервер разработки не перехватывает следующий запрос, так как значение заголовка x-app не содержит contoso-intranet:
GET https://api.contoso.com/customers
x-app: contoso-public
Частичное сопоставление удобно и позволяет перехватывать запросы со значениями, которые могут изменяться с течением времени, например версией компонента или пакета SDK.
Пример. Перехват запросов с определенным заголовком независимо от значения
Чтобы перехватывать запросы, содержащие определенный заголовок, независимо от его значения, оставьте значение пустым:
Файл:devproxyrc.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.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": ""
}
]
}
Используя эту конфигурацию, прокси-сервер разработки перехватывает запросы, содержащие x-contoso заголовок, независимо от его значения:
GET https://api.contoso.com/customers
x-contoso: api-sdk v1.0
Или сделайте так:
GET https://api.contoso.com/customers
x-contoso: intranet
Прокси-сервер разработки не перехватывает следующий запрос, так как он не имеет заголовка x-contoso :
GET https://api.contoso.com/customers
x-app: contoso-public