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的更多相关文章
- [并发并行]_[线程模型]_[Pthread线程使用模型之三 客户端/服务端模型(Client/Server]
Pthread线程使用模型之三 客户端/服务端模型(Client/Server) 场景 1.在客户端/服务端模型时,客户端向服务端请求一些数据集的操作. 服务端执行执行操作独立的(多进程或跨网络)– ...
- win10操作系统下oracle11g客户端/服务端的下载安装配置卸载总结
win10操作系统下oracle11g客户端/服务端的下载安装配置卸载总结 一:前提 注意:现在有两种安装的方式 1. oracle11g服务端(64位)+oracle客户端(32位)+plsql(3 ...
- Socket客户端/服务端简单实例
1.client端 package demo.socket; import java.io.BufferedReader;import java.io.IOException;import java. ...
- FastSocket客户端/服务端通讯示例
新建控制台项目,命名为Server 添加FastSocket.SocketBase,FastSocket.Server引用 Socket命令服务类: Sodao.FastSocket.Server ...
- java.net.SocketException:Software caused connection abort: recv failed 异常分析 +socket客户端&服务端代码
java.net.SocketException:Software caused connection abort: recv failed 异常分析 分类: 很多的技术 2012-01-04 12: ...
- iOS开发推送--客户端 服务端
1.推送过程简介 (1)App启动过程中,使用UIApplication::registerForRemoteNotificationTypes函数与苹果的APNS服务器通信,发出注册远程推送的申请. ...
- Android应用源码基于安卓的校园二手交易系统客户端+服务端+数据库
该源码是校园二手交易系统应用带服务端,也是一个基于安卓和javaweb的校园二手交易系统,包括整套安卓客户端.javaweb服务端.mysql数据库,可以进行基本的列表显示帖子.显示帖子详情.用户注册 ...
- 利用TCP 客户端---->服务端 传送文件到指定路径,并返回一个友好的回馈
首先盲写的一个传输文件的方法,但测试发现了一个非常不容易发现的问题,这里先说明一下. 错误的代码如下: package com.TCP.java; import java.io.File; impor ...
- cocos2d-lua ARPG手机游戏《烈焰遮天》(客户端+服务端+数据库)发布说明
服务器发布流程及其规范1,环境准备 a, mvn命令行:从\\10.21.210.161\share\tools\apache-maven-3.1.1-bin.tar.gz取出安装包, ...
- Python后端(一)——客户端/服务端
网址组成(四部分) 协议 http, https(https 是加密的http) 主机 g.cn zhihu.com之类的网址 ,因此一般不用填写 路径 下面的「/」和「 ...
随机推荐
- 『Numpy』内存分析_高级切片和内存数据解析
在计算机中,没有任何数据类型是固定的,完全取决于如何看待这片数据的内存区域. 在numpy.ndarray.view中,提供对内存区域不同的切割方式,来完成数据类型的转换,而无须要对数据进行额外的co ...
- 设计图与html 对比
简易打开旧版火狐 网页版火狐添加组件 新版有时也会没有 谷歌是腾讯的
- 详解Oracle partition分区表
随着表中行数的增多,管理和性能性能影响也将随之增加.备份将要花费更多时间,恢复也将 要花费更说的时间,对整个数据表的查询也将花费更多时间.通过把一个表中的行分为几个部分,可以减少大型表的管理和性能问题 ...
- Dao层的sql语句
2018-08-12 21:33:43 反思:在数据库执行的时候,sql语句是正确的,复制到方法中,执行出错 因为把限定条件改为?时,把左括号删掉了,sql语句报错 改正:一定要确保sql ...
- Let me introduce myself
介绍自己,从开学到这上半学期结束,不知道说了多少个版本.开学军训,要自我介绍:军训结束,在班里要自我介绍:参加社团,面试要自我介绍.....不能说对每个人,至少对于我来说,在众人面前开口介绍自己,总还 ...
- oracle数据库连接 ORA-12638:身份证明检索失败
连数据库的时候突然报了一个这个 查找各种办法,发现自己从10g换成了11g,不过这个没有什么关系,跟oracle的安全设置有关系, 首先从开始菜单找到Net Manager 打开,选择本地,概要文件, ...
- jq demo 九宫格抽奖
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- vs开发/IIS 遇到的问题--------笔记
1.VS2017专业版和企业版激活密钥 Enterprise: NJVYC-BMHX2-G77MM-4XJMR-6Q8QF Professional: KBJFW-NXHK6-W4WJM-CRMQB- ...
- python IDE PyCharm的安装
首先去Pycharm官网,或者直接输入网址:http://www.jetbrains.com/pycharm/download : 选择Windows系统 免费版本下载: 双击下载的安装包,进行安装 ...
- REST easy with kbmMW #24 使用kbmMW实现JSON/XML/YAML转换成对象
你想过没有,把一个给定的xml或json生成一个Delphi类,并通过这个类完成对xml或json的读写操作吗? 不管有没有,现在kbmMW为我们实现了,看下面这行代码: var s:string; ...