diff --git a/lib/oauth.js b/lib/oauth.js index be3c6d6..7607ee6 100644 --- a/lib/oauth.js +++ b/lib/oauth.js @@ -327,7 +327,13 @@ exports.OAuth.prototype._performSecureRequest= function( oauth_token, oauth_toke } if( (method == "POST" || method == "PUT") && ( post_body == null && extra_params != null) ) { - post_body= querystring.stringify(extra_params); + // Fix the mismatch between the output of querystring.stringify() and this._encodeData() + post_body= querystring.stringify(extra_params) + .replace(/\!/g, "%21") + .replace(/\'/g, "%27") + .replace(/\(/g, "%28") + .replace(/\)/g, "%29") + .replace(/\*/g, "%2A"); } headers["Content-length"]= post_body ? Buffer.byteLength(post_body) : 0;