diff --git a/lib/client.js b/lib/client.js index b875461..075ccd2 100644 --- a/lib/client.js +++ b/lib/client.js @@ -97,9 +97,24 @@ function Client(options, isSecure) { * - {mixed} value - The value returned in the method response. */ Client.prototype.methodCall = function methodCall(method, params, callback) { + var transport = this.isSecure ? https : http + this.methodCallWithTransport(transport, method, params, callback) +}; + +/** + * Makes an XML-RPC call to the server specified by the constructor's options + * via the specified transport. + * + * @param {Object} transport - The request transport. + * @param {String} method - The method name. + * @param {Array} params - Params to send in the call. + * @param {Function} callback - function(error, value) { ... } + * - {Object|null} error - Any errors when making the call, otherwise null. + * - {mixed} value - The value returned in the method response. + */ +Client.prototype.methodCallWithTransport = function methodCallWithTransport(transport, method, params, callback) { var options = this.options var xml = Serializer.serializeMethodCall(method, params, options.encoding) - var transport = this.isSecure ? https : http options.headers['Content-Length'] = Buffer.byteLength(xml, 'utf8') this.headersProcessors.composeRequest(options.headers)