Partilhar via


Enviar pedido unidirecional

APLICA-SE A: Todas as camadas de gerenciamento de API

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

Nota

Defina os elementos da política e os elementos filho na ordem fornecida na declaração de política. Saiba mais sobre como definir ou editar 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 Description Necessário Predefinição
modo Determina se esta é uma new solicitação ou um copy dos cabeçalhos e corpo na solicitação atual. Na seção de política de saída, mode=copy não inicializa o corpo da solicitação. São permitidas expressões de política. Não new
tempo limite O intervalo de tempo limite em segundos antes da chamada para a URL falhar. São permitidas expressões de política. Não 60

Elementos

Elemento Description Obrigatório
set-url O URL do pedido. São permitidas expressões de política. Não, caso mode=copycontrário, sim.
método-conjunto Define o método da solicitação. Expressões de política não são permitidas. Não, caso mode=copycontrário, sim.
set-header Define um cabeçalho na solicitação. Use vários set-header elementos para vários cabeçalhos de solicitação. Não
corpo-conjunto Define o corpo da solicitação. Não
certificado-autenticação Certificado a ser usado para autenticação de cliente, especificado em um thumbprint atributo. Não
procuração Solicitação de rotas via proxy HTTP. Não

Utilização

Exemplo

Este exemplo usa a send-one-way-request política 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 este exemplo, consulte Usando 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: