78 lines
5.7 KiB
HTML
78 lines
5.7 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/x-red" data-help-name="http request">
|
||
<p>發送HTTP請求並返回響應。</p>
|
||
|
||
<h3>輸入</h3>
|
||
<dl class="message-properties">
|
||
<dt class="optional">url <span class="property-type">字符串</span></dt>
|
||
<dd>如果未在節點中配置,則此可選屬性設置請求的url。</dd>
|
||
<dt class="optional">method <span class="property-type">字符串</span></dt>
|
||
<dd>如果未在節點中配置,則此可選屬性設置請求的HTTP方法。必須是<code>GET</code>,<code>PUT</code>,<code>POST</code>,<code>PATCH</code>或<code>DELETE</code>之一。</dd>
|
||
<dt class="optional">headers <span class="property-type">object</span></dt>
|
||
<dd>設置請求的HTTP頭。</dd>
|
||
<dt class="optional">cookies <span class="property-type">object</span></dt>
|
||
<dd>如果設置,則可用于發送帶有請求的cookie。</dd>
|
||
<dt class="optional">payload</dt>
|
||
<dd>發送爲請求的正文。</dd>
|
||
<dt class="optional">rejectUnauthorized</dt>
|
||
<dd>如果設置爲<code>false</code>,則允許對使用自簽名證書的https站點進行請求。</dd>
|
||
<dt class="optional">followRedirects</dt>
|
||
<dd>如果設置爲<code>false</code>,則阻止遵循重定向(HTTP 301)。默認情況下爲<code>true</code></dd>
|
||
<dt class="optional">requestTimeout</dt>
|
||
<dd>如果設置爲正數毫秒,將覆蓋全局設置的<code>httpRequestTimeout</code>參數。</dd>
|
||
</dl>
|
||
<h3>輸出</h3>
|
||
<dl class="message-properties">
|
||
<dt>payload <span class="property-type">字符串 | object | buffer</span></dt>
|
||
<dd>響應的正文。可以將節點配置爲以字符串形式返回主體,嘗試將其解析爲JSON字符串或將其保留爲二進制buffer。</dd>
|
||
<dt>statusCode <span class="property-type">數值</span></dt>
|
||
<dd>響應的狀態碼,如果請求無法完成,則返回錯誤碼。</dd>
|
||
<dt>headers <span class="property-type">object</span></dt>
|
||
<dd>包含響應頭的對象。</dd>
|
||
<dt>responseUrl <span class="property-type">字符串</span></dt>
|
||
<dd>如果在處理請求時發生任何重定向,則此屬性爲最終重定向的URL。否則則爲原始請求的URL。</dd>
|
||
<dt>responseCookies <span class="property-type">object</span></dt>
|
||
<dd>如果響應包含cookie,則此屬性是每個cookie的‘名稱/值’鍵值對的對象。</dd>
|
||
<dt>redirectList <span class="property-type">數組</span></dt>
|
||
<dd>如果請求被重定向了一次或多次,則累積的信息將被添加到此屬性。“location”是下一個重定向目標。cookie是從重定向源返回的cookie。</dd>
|
||
</dl>
|
||
<h3>詳細</h3>
|
||
<p>在節點內配置後,URL屬性可以包含<a href="http://mustache.github.io/mustache.5.html" target="_blank">mustache樣式</a>標簽。 這些標簽允許使用傳入消息的值來構造url。例如,如果url設置爲<code>example.com/{{{{topic}}}</code>,它將自動插入<code>msg.topic</code>的值。使用{{{...}}}可以防止mustache轉義/ &等字符。</p>
|
||
<p>節點可以選擇自動將<code>msg.payload</code>編碼爲GET請求的查詢字符串參數,在這種情況下,<code>msg.payload</code>必須是一個對象。</p>
|
||
<p><b>注意:</b>如果使用了代理,則應設置<code>http_proxy=...</code>環境變量並重新啓動Node-RED,或使用“代理配置”。如果設置了代理配置,則配置優先于環境變量。</p>
|
||
<h4>使用多個HTTP請求節點</h4>
|
||
<p>爲了在一個流程中多次使用該節點,必須要注意<code>msg.headers</code>屬性的處理。通常在第一個節點在響應頭中設置此屬性,而不期望在下一個節點的請求頭中使用此屬性。如果節點之間的<code>msg.headers</code>屬性保持不變,則第二個節點將忽略它。要設置自定義標題,首先應刪除<code>msg.headers</code>或將其重置爲空對象:<code>{}</code>。</p>
|
||
<h4>Cookie處理</h4>
|
||
<p>傳遞給節點的<code>cookies</code>屬性必須是‘名稱/值’鍵值對的對象。該值可以是設置cookie值的字符串,也可以是具有單個<code>value</code>屬性的對象。</p>
|
||
<p>請求返回的所有cookie都將在<code>responseCookies</code>屬性下傳遞回去。</p>
|
||
<h4>內容類型處理</h4>
|
||
<p>如果<code>msg.payload</code>是一個對象,則節點將自動將請求的內容類型設置爲<code>application/json</code>並對其進行編碼。</p>
|
||
<p>要將請求編碼爲表單數據,應將<code>msg.headers[“content-type”]</code>設置爲<code>application/x-www-form-urlencoded</code>。</p>
|
||
<h4>文件上傳</h4>
|
||
<p>要執行文件上傳,應將<code>msg.headers["content-type"]</code>設置爲<code>multipart/form-data</code>和<code>msg.payload</code>傳遞給節點的必須是具有以下結構的對象:</p>
|
||
<pre><code>{
|
||
"KEY": {
|
||
"value": FILE_CONTENTS,
|
||
"options": {
|
||
"filename": "FILENAME"
|
||
}
|
||
}
|
||
}</code></pre>
|
||
<p><code>KEY</code>,<code>FILE_CONTENTS</code>和<code>FILENAME</code>的值應設置爲適當的值。</p>
|
||
|
||
</script>
|