Condividi tramite


Invia richiesta unidirezionale

SI APPLICA A: Tutti i livelli di Gestione API

Il criterio send-one-way-request invia la richiesta specificata all'URL specificato senza attendere una risposta.

Nota

Impostare gli elementi e gli elementi figlio del criterio nell'ordine specificato nell'istruzione del criterio. Altre informazioni su come impostare o modificare i criteri di API Management.

Istruzione del criterio

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

Attributi

Attributo Descrizione Richiesto Valore predefinito
mode Determina se si tratta di una richiesta new o di copy delle intestazioni e del corpo nella richiesta corrente. Nella sezione criteri in uscita mode=copy non inizializza il corpo della richiesta. Le espressioni di criteri sono consentite. No new
timeout Intervallo di timeout in secondi prima che la chiamata all'URL abbia esito negativo. Le espressioni di criteri sono consentite. No 60

Elementi

Elemento Descrizione Richiesto
set-url URL della richiesta. Le espressioni di criteri sono consentite. No se mode=copy; in caso contrario, sì.
set-method Imposta il metodo della richiesta. Le espressioni di criteri non sono consentite. No se mode=copy; in caso contrario, sì.
set-header Imposta un'intestazione nella richiesta. Usare più elementi set-header per più intestazioni di richiesta. No
set-body Imposta il corpo della richiesta. No
authentication-certificate Certificato da usare per l'autenticazione client, specificato in un attributo thumbprint. No
proxy Indirizza la richiesta tramite proxy HTTP. No

Utilizzo

Esempio

Questo esempio usa il criterio send-one-way-request per inviare un messaggio a una chat room slack se il codice di risposta HTTP è maggiore o uguale a 500. Per altre informazioni relative a questo esempio, vedere Uso di servizi esterni dal servizio Gestione API di 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>

Per ulteriori informazioni sull'utilizzo dei criteri, vedere: