<!--
  Copyright JS Foundation and other contributors, http://js.foundation

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<script type="text/x-red" data-help-name="http request">
    <p>Sendet HTTP-Anforderungen und gibt die Antwort zurück.</p>

    <h3>Eingaben</h3>
    <dl class="message-properties">
        <dt class="optional">url <span class="property-type">Zeichenkette</span></dt>
        <dd>Wenn nicht im Knoten konfiguriert, setzt diese optionale Eigenschaft die URL der Anforderung.</dd>
        <dt class="optional">method <span class="property-type">Zeichenkette</span></dt>
        <dd>Wenn nicht im Knoten konfiguriert, setzt diese optionale Eigenschaft die HTTP-Methode der Anforderung. 
            Muss einer von <code>GET</code>, <code>PUT</code>, <code>POST</code>, <code>PATCH</code> oder <code>DELETE</code> sein.</dd>
        <dt class="optional">headers <span class="property-type">Objekt</span></dt>
        <dd>Setzt die HTTP-Header der Anforderung.</dd>
        <dt class="optional">cookies <span class="property-type">Objekt</span></dt>
        <dd>Wenn gesetzt, kann es verwendet werden, um Cookies mit der Anforderung zu senden.</dd>
        <dt class="optional">payload</dt>
        <dd>Wird als Hauptteil der Anforderung gesendet.</dd>
        <dt class="optional">rejectUnauthorized</dt>
        <dd>Wenn auf <code>false</code> gesetzt, können Anforderungen an https-Sites gesendet werden, die selbst signierte Zertifikate verwenden.</dd>
        <dt class="optional">followRedirects</dt>
        <dd>Wenn auf <code>false</code> gesetzt, wird ein folgendes Redirect (HTTP 301) verhindert. 
            In der Standardeinstellung ist <code>true</code>.</dd>
        <dt class="optional">requestTimeout</dt>
        <dd>Wenn dieser Wert auf eine positive Zahl eingestellt ist, 
            wird damit der global eingestellte Parameter <code>httpRequestTimeout</code> überschrieben.</dd>
    </dl>
    <h3>Ausgaben</h3>
    <dl class="message-properties">
        <dt>payload <span class="property-type">Zeichenkette | Objekt | Puffer</span></dt>
        <dd>Der Hauptteil der Antwort. Der Knoten kann konfiguriert werden, um den Hauptteil als Zeichenkette zurückzugeben, 
            zu versuchen, ihn als JSON-Zeichenkette zu analysieren oder ihn als binären Puffer zu belassen.</dd>
        <dt>statusCode <span class="property-type">Zahl</span></dt>
        <dd>Der Statuscode der Antwort oder der Fehlercode, wenn die Anforderung nicht abgeschlossen werden konnte.</dd>
        <dt>headers <span class="property-type">Objekt</span></dt>
        <dd>Ein Objekt, das die HTTP-Header der Antwort enthält.</dd>
        <dt>responseUrl <span class="property-type">Zeichenkette</span></dt>
        <dd>Falls während der Bearbeitung der Anforderung Umleitungen aufgetreten sind, ist diese Eigenschaft die letzte umgelenkte URL. 
            Andernfalls die URL der ursprünglichen Anforderung.</dd>
        <dt>responseCookies <span class="property-type">Objekt</span></dt>
        <dd>Wenn die Antwort Cookies enthält, ist dieses Element ein Objekt von Namen/Wertpaaren für jedes Cookie.</dd>
    </dl>
    <h3>Details</h3>
    <p>Wenn innerhalb des Knotens konfiguriert, kann die URL-Eigenschaft 
        <a href="http://mustache.github.io/mustache.5.html" target="_blank">mustache-style</a> Tags enthalten. 
        Diese ermöglicht es, die URL aus den Werten der eingehenden Nachricht aufzubauen. 
        Wenn die URL beispielsweise auf <code>example.com/{{{topic}}}</code> gesetzt ist, 
        wird der Wert von <code>msg.topic</code> automatisch eingefügt.
        Die Verwendung von {{{....}} hindert den Mustache am Escaping von Zeichen wie / & etc.</p>
    <p><b>Note</b>: Wenn Node-RED hinter einem Proxy läuft, sollte die Umgebungsvariable <code>http_proxy=...</code> gesetzt 
        und Node-RED neu gestartet werden, oder eine Proxy Konfiguration wird verwendet. 
        Wenn die Proxy-Konfiguration verwendet wird, hat diese Konfiguration Vorrang vor der Umgebungsvariablen.</p>
    <h4>Verwendung mehrerer HTTP-Anforderungsknoten</h4>
    <p>Um mehr als einen dieser Knoten im gleichen Flow verwenden zu können, 
        ist Vorsicht bei der Verwendung der Eigenschaft <code>msg.headers</code> geboten 
        Der erste Knoten setzt diese Eigenschaft mit  dem Antwortheader. 
        Der nächste Knoten verwendet dann diese Header für seine Anfrage - diese sind aber in der Regel nicht die Richtigen. 
        Wenn die Eigenschaft <code>msg.headers</code> zwischen den Knoten unverändert bleibt, wird sie vom zweiten Knoten ignoriert. 
        Um benutzerdefinierte Header festzulegen, sollte <code>msg.headers</code> zuerst gelöscht 
        oder auf ein leeres Objekt gesetzt werden: <code>{}</code>.</p>
    <h4>Behandlung von Cookies</h4>
    <p>Die an den Knoten übergebene Eigenschaft <code>cookies</code> muss ein Objekt von Name/Wert Paaren sein.
        Der Wert kann entweder eine Zeichenkette sein, um den Wert des Cookies zu setzen, 
        oder es kann ein Objekt mit einer einzigen <code>value</code> Eigenschaft sein.<p>
    <p>Alle von der Anforderung zurückgegebenen Cookies werden unter der Eigenschaft <code>responseCookies</code> zurückgegeben.</p>
    <h4>Behandlung von Content-Typen</h4>
    <p>Wenn <code>msg.payload</code> ein Objekt ist, setzt der Knoten automatisch den Inhaltstyp der Anforderung 
        auf <code>application/json</code> und kodiert den Hauptteil als solchen.</p>
    <p>Um die Anforderung als Formulardaten zu kodieren, 
        sollte <code>msg.headers["content-type"]</code> auf <code>application/x-wwww-form-urlencoded</code> gesetzt werden.</p>

</script>