mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Simple fix to check/force http: to close #288
Checks url starts http: or https: - if not add http: - at least then it breaks gently. Also add resultant url to any error payload if request fails in order to make debug easier.
This commit is contained in:
parent
14a1899c23
commit
82036dd84a
@ -121,8 +121,9 @@
|
|||||||
<p>The URL and HTTP method can be configured in the node, but also
|
<p>The URL and HTTP method can be configured in the node, but also
|
||||||
overridden by the incoming message:
|
overridden by the incoming message:
|
||||||
<ul>
|
<ul>
|
||||||
<li><code>url</code>, if set, is used as the url of the request</li>
|
<li><code>url</code>, if set, is used as the url of the request. Must start with http: or https:</li>
|
||||||
<li><code>method</code>, if set, is used as the HTTP method of the request. Must be one of <code>GET</code>, <code>PUT</code>, <code>POST</code> or <code>DELETE</code> (default: GET)</li>
|
<li><code>method</code>, if set, is used as the HTTP method of the request.
|
||||||
|
Must be one of <code>GET</code>, <code>PUT</code>, <code>POST</code> or <code>DELETE</code> (default: GET)</li>
|
||||||
<li><code>headers</code>, if set, should be an object containing field/value
|
<li><code>headers</code>, if set, should be an object containing field/value
|
||||||
pairs to be added as request headers</li>
|
pairs to be added as request headers</li>
|
||||||
<li><code>payload</code> is sent as the body of the request</li>
|
<li><code>payload</code> is sent as the body of the request</li>
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
module.exports = function(RED) {
|
module.exports = function(RED) {
|
||||||
"use strict";
|
"use strict";
|
||||||
var util = require("util");
|
|
||||||
var http = require("follow-redirects").http;
|
var http = require("follow-redirects").http;
|
||||||
var https = require("follow-redirects").https;
|
var https = require("follow-redirects").https;
|
||||||
var urllib = require("url");
|
var urllib = require("url");
|
||||||
@ -159,6 +158,11 @@ module.exports = function(RED) {
|
|||||||
} else {
|
} else {
|
||||||
url = nodeUrl;
|
url = nodeUrl;
|
||||||
}
|
}
|
||||||
|
// url must start http:// or https:// so assume http:// if not set
|
||||||
|
if (!((url.indexOf("http://")===0) || (url.indexOf("https://")===0))) {
|
||||||
|
url = "http://"+url;
|
||||||
|
}
|
||||||
|
|
||||||
var method = (msg.method||nodeMethod).toUpperCase();
|
var method = (msg.method||nodeMethod).toUpperCase();
|
||||||
//node.log(method+" : "+url);
|
//node.log(method+" : "+url);
|
||||||
var opts = urllib.parse(url);
|
var opts = urllib.parse(url);
|
||||||
@ -208,7 +212,7 @@ module.exports = function(RED) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
req.on('error',function(err) {
|
req.on('error',function(err) {
|
||||||
msg.payload = err.toString();
|
msg.payload = err.toString() + " : " + url;
|
||||||
msg.statusCode = err.code;
|
msg.statusCode = err.code;
|
||||||
node.send(msg);
|
node.send(msg);
|
||||||
node.status({fill:"red",shape:"ring",text:err.code});
|
node.status({fill:"red",shape:"ring",text:err.code});
|
||||||
@ -219,7 +223,7 @@ module.exports = function(RED) {
|
|||||||
req.end();
|
req.end();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
RED.nodes.registerType("http request",HTTPRequest,{
|
RED.nodes.registerType("http request",HTTPRequest,{
|
||||||
credentials: {
|
credentials: {
|
||||||
user: {type:"text"},
|
user: {type:"text"},
|
||||||
|
Loading…
Reference in New Issue
Block a user