Aanvraag voor één manier verzenden

VAN TOEPASSING OP: Alle API Management-lagen

Het send-one-way-request beleid verzendt de opgegeven aanvraag naar de opgegeven URL zonder te wachten op een antwoord.

Notitie

Stel de elementen en onderliggende elementen van het beleid in de volgorde in die in de beleidsverklaring is opgegeven. Meer informatie over het instellen of bewerken van API Management-beleid.

Beleidsinstructie

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

Kenmerken

Kenmerk Beschrijving Vereist Standaardinstelling
modus Bepaalt of dit een new aanvraag of een copy van de headers en hoofdtekst in de huidige aanvraag is. In de sectie mode=copy Uitgaand beleid wordt de aanvraagbody niet geïnitialiseerd. Beleidsexpressies zijn toegestaan. Nee new
timeout Het time-outinterval in seconden voordat de aanroep naar de URL mislukt. Beleidsexpressies zijn toegestaan. Nee 60

Elementen

Element Beschrijving Vereist
set-URL De URL van de aanvraag. Beleidsexpressies zijn toegestaan. Nee, anders mode=copyja.
set-method Hiermee stelt u de methode van de aanvraag in. Beleidsexpressies zijn niet toegestaan. Nee, anders mode=copyja.
set-header Hiermee stelt u een header in de aanvraag in. Gebruik meerdere set-header elementen voor meerdere aanvraagheaders. Nee
set-body Hiermee stelt u de hoofdtekst van de aanvraag in. Nee
verificatiecertificaat Certificaat dat moet worden gebruikt voor clientverificatie, opgegeven in een thumbprint kenmerk. Nee
Proxy Routeert aanvraag via HTTP-proxy. Nee

Gebruik

Opmerking

In dit voorbeeld wordt het send-one-way-request beleid gebruikt om een bericht naar een Slack-chatruimte te verzenden als de HTTP-antwoordcode groter is dan of gelijk is aan 500. Zie Externe services van de Azure API Management-service gebruiken voor meer informatie over dit voorbeeld.

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

Zie voor meer informatie over het werken met beleid: