98 lines
6.4 KiB
HTML
98 lines
6.4 KiB
HTML
<!--
|
|
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/html" data-help-name="http request">
|
|
<p>Senden von HTTP-Anforderungen und Rückgabe der Antwort.</p>
|
|
<h3>Eingangsdaten</h3>
|
|
<dl class="message-properties">
|
|
<dt class="optional">url <span class="property-type">string</span></dt>
|
|
<dd>Wenn nicht im Node eingestellt, setzt diese optionale Eigenschaft die URL der Anforderung.</dd>
|
|
<dt class="optional">method <span class="property-type">string</span></dt>
|
|
<dd>Wenn nicht im Node eingestellt, setzt diese optionale Eigenschaft die HTTP-Methode der Anforderung
|
|
(<code>GET</code>, <code>PUT</code>, <code>POST</code>, <code>PATCH</code> oder <code>DELETE</code>).</dd>
|
|
<dt class="optional">headers <span class="property-type">object</span></dt>
|
|
<dd>HTTP-Header der Anforderung.</dd>
|
|
<dt class="optional">cookies <span class="property-type">object</span></dt>
|
|
<dd>Wenn gesetzt, kann es verwendet werden, um Cookies mit der Anforderung zu senden.</dd>
|
|
<dt class="optional">payload</dt>
|
|
<dd>Hauptteil der Anforderung.</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 nachfolgendes Redirect (HTTP 301) verhindert.
|
|
Standard 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>Ausgangsdaten</h3>
|
|
<dl class="message-properties">
|
|
<dt>payload <span class="property-type">string | object | buffer</span></dt>
|
|
<dd>Hauptteil der Antwort.<br/>
|
|
Der Node kann eingestellt werden, um den Hauptteil als String zurückzugeben,
|
|
zu versuchen, ihn als JSON-String zu analysieren oder ihn als binären Puffer (buffer) zu belassen.</dd>
|
|
<dt>statusCode <span class="property-type">number</span></dt>
|
|
<dd>Statuscode der Antwort oder der Fehlercode, wenn die Anforderung nicht abgeschlossen werden konnte.</dd>
|
|
<dt>headers <span class="property-type">object</span></dt>
|
|
<dd>Objekt mit dem HTTP-Header der Antwort.</dd>
|
|
<dt>responseUrl <span class="property-type">string</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">object</span></dt>
|
|
<dd>Wenn die Antwort Cookies enthält, ist dieses Element ein Objekt von Name/Wert-Paaren für jedes Cookie.</dd>
|
|
</dl>
|
|
<h3>Details</h3>
|
|
<p>Wenn innerhalb des Nodes eingestellt, kann die URL-Eigenschaft
|
|
<a href="http://mustache.github.io/mustache.5.html" target="_blank">mustache-style</a>-Tags enthalten.
|
|
Diese ermöglichen es, die URL aus den Werten der eingehenden Nachricht aufzubauen.
|
|
Wenn die URL beispielsweise <code>example.com/{{{topic}}}</code> lautet,
|
|
wird der Wert von <code>msg.topic</code> automatisch eingefügt.
|
|
Die Verwendung von {{{...}} hindert Mustache am Escaping von Zeichen wie z.B. / & usw.</p>
|
|
<p><b>Hinweis</b>: Wenn Node-RED hinter einem Proxy läuft, sollte die Umgebungsvariable <code>http_proxy=...</code>
|
|
gesetzt und Node-RED neu gestartet werden.
|
|
Alternativ kann eine Proxy-Konfiguration verwendet werden, die dann Vorrang vor der Umgebungsvariable hat.</p>
|
|
<h4><b>Verwendung mehrerer HTTP-Anforderungs-Nodes</b></h4>
|
|
<p>Um mehr als einen dieser Nodes im gleichen Flow verwenden zu können,
|
|
ist Aufmerksamkeit bei der Verwendung der <code>msg.headers</code>-Eigenschaft gefordert.
|
|
Der erste Node setzt diese Eigenschaft mit dem Antwort-Header.
|
|
Der nächste Node verwendet dann diesen Header für seine Anfrage, was aber nicht die richtige Art und Weise ist.
|
|
Wenn die <code>msg.headers</code>-Eigenschaft zwischen den Nodes unverändert bleibt, wird sie vom zweiten Node ignoriert.
|
|
Um benutzerdefinierte Header festzulegen, sollte <code>msg.headers</code> zuerst gelöscht oder
|
|
auf ein leeres Objekt gesetzt werden: <code>{}</code></p>
|
|
<h4><b>Behandlung von Cookies</b></h4>
|
|
<p>Die an den Node übergebene <code>cookies</code>-Eigenschaft muss ein Objekt von Name/Wert-Paaren sein.
|
|
Der Wert kann entweder ein String sein, um den Wert des Cookies zu setzen,
|
|
oder es kann ein Objekt mit einer einzigen <code>value</code>-Eigenschaft sein.<p>
|
|
<p>Alle auf Anforderung zurückgegebene Cookies werden über die <code>responseCookies</code>-Eigenschaft zurückgegeben.</p>
|
|
<h4><b>Behandlung von Content-Typen</b></h4>
|
|
<p>Wenn <code>msg.payload</code> ein Objekt ist, setzt der Node 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>
|
|
<h4><b>Datei-Upload</b></h4>
|
|
<p>Um einen Datei-Upload umzusetzen, sollte <code>msg.headers["content-type"]</code> auf <code>multipart/form-data</code>
|
|
gesetzt werden und das an den Node zu sendende <code>msg.payload</code> muss ein Objekt mit folgender Struktur sein:</p>
|
|
<pre><code>{
|
|
"KEY": {
|
|
"value": FILE_CONTENTS,
|
|
"options": {
|
|
"filename": "FILENAME"
|
|
}
|
|
}
|
|
}</code></pre>
|
|
<p>Die Inhalte von <code>KEY</code>, <code>FILE_CONTENTS</code> und <code>FILENAME</code>
|
|
sollten auf passende Werte gesetzt sein.</p>
|
|
</script>
|