Поделиться через


Отправка односторонного запроса

ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни Управление 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

Использование

Пример

В этом примере политика используется 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>

Дополнительные сведения о работе с политиками см. в нижеуказанных статьях.