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之类的网址 ,因此一般不用填写 路径 下面的「/」和「 ...
随机推荐
- python中mysql数据库的操作-sqlalchemy
MySQLdb支持python2.*,不支持3.* ,python3里面使用PyMySQL模块代替 python3里面如果有报错 django.core.exceptions.ImproperlyC ...
- 『TensorFlow』SSD源码学习_其二:基于VGG的SSD网络前向架构
Fork版本项目地址:SSD 参考自集智专栏 一.SSD基础 在分类器基础之上想要识别物体,实质就是 用分类器扫描整张图像,定位特征位置 .这里的关键就是用什么算法扫描,比如可以将图片分成若干网格,用 ...
- hadoop之安装
在Linux环境下安装Hadoop: 一.安装环境 硬件:虚拟机 操作系统:Centos 6.4 64位 IP:192.168.153.130主机名:imooc安装用户:root ...
- linux下配置mysql 与错误解决
1.下载mysql wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-el7-x86_64.tar.gz 2.检查linux是否 ...
- Python标准库映射类型与可散列数据类型的关系
这里有两个概念似懂非懂,在这里明确一下: 映射类型: Python>3.2中,collections.abc模块有Mapping和MutableMapping两个抽象基类(Python2.6~3 ...
- Linux目录结构下部
第1章 linux目录结构 (linux必知必会的文件或目录) 1.1 在linux下面如何安装软件 yum install tree 1.2 linux无法上网了怎么办? [root@oldboye ...
- python语法之函数
函数: 将特定功能代码编写在一个函数里 便于阅读和复用 对一组表达特定功能表达式的封装 使程序模块化 python内置函数: input(),print(),eval()... 函数定义 函数语法格式 ...
- Eclipse ee项目 Java Resources文件报错解决方法
通常是JDK版本配置问题,这里使用的是JDK1.8版本 确保jre版本为本机配置的版本 打开Navigator目录的.settings文件夹修改org.eclipse.wst.common.compo ...
- python继承和多态
继承 目标 单继承 多继承 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 继承 实现代码的重用,相同的代码不需要重复的编写 多态 不同的对象调用相同的方法,产生不 ...
- 剑指Offer 25. 复杂链表的复制 (链表)
题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head.(注意,输出结果中请不要返回参数中的节点引用,否 ...