HTTP客户端/服务端 POST/GET
Posted IT_LM
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP客户端/服务端 POST/GET相关的知识,希望对你有一定的参考价值。
获取GET请求内容
实例
//引入模块
var http=require(‘http‘);
var urls=require(‘url‘);
var util=require(‘util‘);
//创建服务
http.createServer(function(req,res){
res.writeHead(200,{‘Content-Type‘:‘text/plain‘});
// 解析 url 参数
var params = url.parse(req.url, true).query;
res.write("网站名:" + params.name);
res.write("\n");
res.write("网站 URL:" + params.url);
res.end();
}).listen(3001);
//下面的列子是 在nodejs下 创建客户端和服务端
知识点:http模块提供了两个函数http.request(post请求)和http.get(get请求),功能是作为客户端向HTTP服务器发起请求。
var http=require(‘http‘);
var url=require(‘url‘);
var util=require(‘util‘);
//启动服务
http.createServer(function(req,res){
console.log(‘请求到来,解析参数‘);
var params=url.parse(req.url,true);
console.log(‘解析完成‘);
console.log(util.inspect(params));//得到是具体的url信息
console.log(‘向客户端返回‘);
res.end(params.query.name);//res.write(params.query.name); 这边是向客户端发生回复信息 触发客户端的data事件得到data数据
}).listen(3000);
//客户端请求
var request=http.get({
host:‘localhost‘,
path:‘/user?name=marico&age=21‘,
port:3000},function(res){
res.setEncoding(‘utf-8‘);
res.on(‘data‘,function(data){
console.log(‘ 服务端相应回来的数据为:‘+data);
})
});
获取 POST 请求内容
实例
var querystring = require(‘querystring‘);
var posthtml =
‘<html><head><meta charset="utf-8"><title>菜鸟教程 Node.js 实例</title></head>‘ +
‘<body>‘ +
‘<form method="post">‘ +
‘网站名: <input name="name"><br>‘ +
‘网站 URL: <input name="url"><br>‘ +
‘<input type="submit">‘ +
‘</form>‘ +
‘</body></html>‘;
http.createServer(function (req, res) {
var body = "";
req.on(‘data‘, function (chunk) {
body += chunk;
});
req.on(‘end‘, function () {
// 解析参数
body = querystring.parse(body);
// 设置响应头部信息及编码
res.writeHead(200, {‘Content-Type‘: ‘text/html; charset=utf8‘});
if(body.name && body.url) { // 输出提交的数据
res.write("网站名:" + body.name);
res.write("<br>");
res.write("网站 URL:" + body.url);
} else { // 输出表单
res.write(postHTML);
}
res.end();
});
}).listen(3000);
var http=require(‘http‘);
var querystring=require(‘querystring‘);
//启动服务
http.createServer(function(req,res){
console.log(‘请求到来,解析参数‘);
//解析post请求
var post=‘‘;
req.on(‘data‘,function(chunk){
post+=chunk;
});
req.on(‘end‘,function(){
post=querystring.parse(post);
//解析完成
console.log(‘参数解析完成,返回name参数‘);
res.end(post.name);
});
}).listen(3000);
//客户端请求
var contents=querystring.stringify({
name:‘marico‘,
age:21,
address:‘beijing‘
});
//Ext.encode();
//声明请求参数
var options={
host:‘localhost‘,
path:‘/‘,
port:3000,
method:‘POST‘,
headers:{
‘Content-Type‘:‘application/x-www-form-urlencoded‘,
‘Content-Length‘:contents.length
}
};
//发送请求
var req=http.request(options,function(res){
res.setEncoding(‘utf-8‘);
res.on(‘data‘,function(data){ //等待服务端返回数据触发函数
console.log(‘后台返回数据‘);
console.log(data);
})
});
req.write(contents);
//必须调用end()
req.end();
以上是关于HTTP客户端/服务端 POST/GET的主要内容,如果未能解决你的问题,请参考以下文章
jQuery – AJAX get() 和 post() 方法