今天在工作中碰到使用nodejs http.request(options, callback)传多个参数,并且参数含空格的情况怎么传都失败,发现是用浏览器就成功,打印出来浏览器传输是encode过得,于是使用js的encodeURIcomponet(str),加密再传参果断成功,记录下来方便查阅;
var content = "this is a test";
var contact = "test@test.cn"
param = {"id":21}+','+contact+','+conten
var options = {
host: '127.0.0.1', //server adderss
port: 3000, //server port
method: method,
path: service+param //service and argument
};
var req = http.request(options, function(res) {});
解决方法:
param = JSON.stringify(user) + ',' + encodeURIComponent(contact) + ',' + encodeURIComponent(context);
附各种语言urlencode方法:
decodeURIComponent(encodedURIString) 二.ASP:无三.Asp.Net编码:HttpUtility.Urlencode(str)解码:HttpUtility.UrlDecode(str)四.Php编码:urlencode(str)解码:urldecode(str)五.Java编码:java.net.URLEncode.encode(str)解码:java.net.URLDecoder.decode(str)
本文讨论了在使用Node.js进行HTTP请求时遇到的问题,即当请求参数包含空字符时,使用普通浏览器可以成功发送请求,但在Node.js环境中失败。通过使用JavaScript的encodeURIcomponent方法对参数进行加密后,问题得以解决。文章还提供了多种语言的URL编码方法,包括JavaScript、ASP、ASP.NET、PHP和Java。
1050

被折叠的 条评论
为什么被折叠?



