diff --git a/src/targets/index.js b/src/targets/index.js index 397f2b850..ba34de4a6 100644 --- a/src/targets/index.js +++ b/src/targets/index.js @@ -14,5 +14,6 @@ module.exports = { python: require('./python'), ruby: require('./ruby'), shell: require('./shell'), - swift: require('./swift') + swift: require('./swift'), + tcl: require('./tcl') } diff --git a/src/targets/protocolEngine/native.js b/src/targets/protocolEngine/native.js index b91f4601b..c9c92d4a8 100644 --- a/src/targets/protocolEngine/native.js +++ b/src/targets/protocolEngine/native.js @@ -27,7 +27,11 @@ module.exports = function (source, options) { headers: source.allHeaders } - code.push('@output("dataReq", { method:"'+source.method+'", path:"'+source.fullUrl+'", content: '+source.postData.text+', timeout: 3000 }, "lower");') + delete settings.headers['content-type']; + + var headers= JSON.stringify( settings.headers); + + code.push('@output("dataReq", { method:"'+source.method+'", path:"'+source.fullUrl+'", content: '+source.postData.text+', headers: '+headers+', timeout: 3000 }, "lower");') return code.join() } diff --git a/src/targets/shell/curl.js b/src/targets/shell/curl.js index d25f7252b..b62c189c3 100644 --- a/src/targets/shell/curl.js +++ b/src/targets/shell/curl.js @@ -16,13 +16,13 @@ var CodeBuilder = require('../../helpers/code-builder') module.exports = function (source, options) { var opts = util._extend({ - indent: ' ', - short: false + indent: false, + short: true }, options) var code = new CodeBuilder(opts.indent, opts.indent !== false ? ' \\\n' + opts.indent : ' ') - code.push('curl %s %s', opts.short ? '-X' : '--request', source.method) + code.push('curl -L %s %s', opts.short ? '-X' : '--request', source.method) .push(util.format('%s%s', opts.short ? '' : '--url ', helpers.quote(source.fullUrl))) if (source.httpVersion === 'HTTP/1.0') { diff --git a/src/targets/tcl/index.js b/src/targets/tcl/index.js new file mode 100644 index 000000000..2ae8e838f --- /dev/null +++ b/src/targets/tcl/index.js @@ -0,0 +1,12 @@ +'use strict' + +module.exports = { + info: { + key: 'tcl', + title: 'tcl', + extname: '.tcl', + default: 'native' + }, + + native: require('./native') +} diff --git a/src/targets/tcl/native.js b/src/targets/tcl/native.js new file mode 100644 index 000000000..6b53b3238 --- /dev/null +++ b/src/targets/tcl/native.js @@ -0,0 +1,46 @@ +/** + * @description + * HTTP code snippet generator for TCL + * + * @author + * @lttlrck + * + */ + +'use strict' + +var util = require('util') +var CodeBuilder = require('../../helpers/code-builder') + +module.exports = function (source, options) { + var opts = util._extend({ + indent: ' ' + }, options) + + var code = new CodeBuilder(opts.indent) + + var settings = { + async: true, + crossDomain: true, + url: source.fullUrl, + method: source.method, + headers: source.allHeaders + } + + code.push("package require http"); + code.push("set url "+source.fullUrl); + code.push("set content "+source.postData.text); + code.push("set method "+source.method.toUpperCase()); + + code.push("set http [::http::geturl $url -method $method -type application/json -query $content]"); + code.push("set html [::http::data $http]"); + + return code.join("\n"); +} + +module.exports.info = { + key: 'tcl', + title: 'tcl', + link: 'http://www.tcl.tk/', + description: 'Perform a TCL HTTP request' +}