对于http的get,post请求的区别,我的理解有下面两点:
1:get是向服务器索取数据的一种请求,而post是像服务器提交的一种请求。
2:post更加安全些,适合于登录,获取验证码等等。
3:post请求是将请求参数以form表单的形式post出去,而get请求参数直接加在path后面 例子 path="callme/index.cfm/userService/command/search?"+"lat=123&lon=123"
http的get请求代码如下:
var http = require('http');
var querystring = require('querystring');
var options = {
host: 'xxx', // 这个不用说了, 请求地址
port:80,
path:path, // 具体路径, 必须以'/'开头, 是相对于host而言的
method: 'GET', // 请求方式, 这里以post为例
headers: { // 必选信息, 如果不知道哪些信息是必须的, 建议用抓包工具看一下, 都写上也无妨...
'Content-Type': 'application/json'
}
};
http.get(options, function(res) {
var resData = "";
res.on("data",function(data){
resData += data;
});
res.on("end", function() {
callback(null,JSON.parse(resData));
});
})
http的post请求代码如下
var http = require('http');
var querystring = require('querystring');
//json转换为字符串
var data = querystring.stringify({
id:"1",
pw:"hello"
});
var options = {
host: '115.29.45.194',
// host:'localhost',
// port: 14000,
// path: '/v1?command=getAuthenticode',
path:'/callme/index.cfm/userService/command/getAuthenticode/',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': Buffer.byteLength(data)
}
};
var req = http.request(options, function(res) {
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log("body: " + chunk);
});
res.on('end',function(chunk){
console.log("body: " + chunk);
})
});
req.write(data);
req.end();
推荐大家用个google的一个应用:chrome-extension://aejoelaoggembcahagimdiliamlcdmfm/HttpClient.html
这个应用就是类似1个测试http的get,post请求的客户端。
以上songzm个人总结,如有错漏请指出。