Enviar solicitação unidirecional

APLICA-SE A: todas as camadas do Gerenciamento de API

A política send-one-way-request envia a solicitação fornecida para a URL especificada sem aguardar uma resposta.

Observação

Defina os elementos da política e os elementos filho na ordem fornecida na declaração da política. Saiba mais sobre como definir e editar as políticas de Gerenciamento de API.

Declaração de política

<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>

Atributos

Atributo Descrição Obrigatório Padrão
mode Determina se esta é uma new solicitação ou uma copy dos cabeçalhos e corpo da solicitação atual. Na seção de política de saída, mode=copy não inicializa o corpo da solicitação. Expressões de política são permitidas. Não new
tempo limite O intervalo de tempo limite em segundos antes de a chamada para a URL falhar. Expressões de política são permitidas. Não 60

Elementos

Elemento Descrição Obrigatório
set-url A URL da solicitação. Expressões de política são permitidas. Não se mode=copy, caso contrário, sim.
set-method Define o método da solicitação. Expressões de política não são permitidas. Não se mode=copy, caso contrário, sim.
set-header Define um cabeçalho na solicitação. Use vários elementos de set-header para vários cabeçalhos de solicitação. Não
set-body Define o corpo da solicitação. Não
authentication-certificate Certificado a ser usado para autenticação de cliente, especificado em um atributo thumbprint. Não
proxy Solicitação de rotas por meio de proxy HTTP. Não

Uso

Exemplo

Este exemplo usa a política send-one-way-request para enviar uma mensagem para uma sala de chat do Slack se o código de resposta HTTP for maior ou igual a 500. Para obter mais informações sobre esse exemplo, consulte Uso dos serviços externos do serviço de Gerenciamento de API do 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>

Para obter mais informações sobre como trabalhar com políticas, consulte: