Отправка односторонного запроса
ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни Управление API
Политика send-one-way-request
отправляет запрос на указанный URL-адрес и не ожидает ответа.
Примечание.
Задайте элементы политики и дочерние элементы в порядке, указанном в правиле политики. Узнайте, как устанавливать или изменять политики службы управления API.
Правило политики
<send-one-way-request mode="new | copy" timeout="time in seconds">
<set-url>request URL</set-url>
<set-method>...</set-method>
<set-header>...</set-header>
<set-body>...</set-body>
<authentication-certificate thumbprint="thumbprint" />
</send-one-way-request>
Атрибуты
Атрибут | Description | Обязательное поле | По умолчанию. |
---|---|---|---|
mode | Определяет, является new ли это запросом или copy заголовками и текстом в текущем запросе. В разделе mode=copy политики исходящего трафика не инициализирует текст запроса. Допустимы выражения политики. |
No | new |
timeout | Интервал времени ожидания в секундах до того, как вызов, адресованный URL-адресу, завершится сбоем. Допустимы выражения политики. | No | 60 |
Элементы
Элемент | Description | Обязательное поле |
---|---|---|
set-url | URL-адрес запроса. Допустимы выражения политики. | Нет, если mode=copy ; в противном случае да. |
set-method | Задает метод запроса. Выражения политики не допускаются. | Нет, если mode=copy ; в противном случае да. |
set-header | Задает заголовок в запросе. Используйте несколько элементов для нескольких set-header заголовков запросов. |
No |
set-body | Задает текст запроса. | No |
authentication-certificate | Сертификат, используемый для проверки подлинности клиента, указанный в атрибуте thumbprint . |
No |
прокси-сервер | Маршрутизирует запрос через прокси-сервер HTTP. | No |
Использование
- Разделы политики: inbound, outbound, backend, on-error.
- Области политики: глобальная, рабочая область, продукт, API, операция
- Шлюзы: классическая, версия 2, потребление, локальное размещение
Пример
В этом примере политика используется send-one-way-request
для отправки сообщения в комнату чата Slack, если код ответа HTTP больше или равен 500. Дополнительные сведения об этом примере см. в статье Использование внешних служб из службы управления API Azure.
<choose>
<when condition="@(context.Response.StatusCode >= 500)">
<send-one-way-request mode="new" timeout="20">
<set-url>https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX</set-url>
<set-method>POST</set-method>
<set-body>@{
return new JObject(
new JProperty("username","APIM Alert"),
new JProperty("icon_emoji", ":ghost:"),
new JProperty("text", String.Format("{0} {1}\nHost: {2}\n{3} {4}\n User: {5}",
context.Request.Method,
context.Request.Url.Path + context.Request.Url.QueryString,
context.Request.Url.Host,
context.Response.StatusCode,
context.Response.StatusReason,
context.User.Email
))
).ToString();
}</set-body>
</send-one-way-request>
</when>
</choose>
Связанные политики
Связанный контент
Дополнительные сведения о работе с политиками см. в нижеуказанных статьях.
- Руководство. Преобразование и защита API
- Полный перечень операторов политик и их параметров см. в справочнике по политикам.
- Выражения политики
- Настройка или изменение политик
- Повторное использование конфигураций политик
- Репозиторий фрагментов политик
- Создание политик с помощью Microsoft Copilot в Azure