获取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服务器发起请求。

  
            1.http.request(options,callback)发起HTTP请求,接受两个参数,option是一个类似关联数组的对象,表示请求的参数,callback是请求的回调函数,option常用的参数如下
                host:请求网站的域名或IP地址
                port:请求网站的端口,默认是80,
                method:请求方法,模式是GET/POST
                path:请求的相对于根的路径,默认是"/"。QueryString应该包含在其中,例如/search?query=marico
                headers:一个关联数组对象,为请求头的内容
                callback传递一个参数,为http.ClientResponse的实例
 
             2.http.get(options,callback) http模块还提供了一个更加简便的方法用于处理GET请求:http.get。它是http.request的简化版,唯一的区别在于http.get自动将请求方法设为GET请求,同时不需要手动调用req.end();
 

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 请求内容

实例

//引入两个模块 http querystring
var http = require('http');
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 = "";
//将post请求的数据存储到body上
  req.on('data', function (chunk) {
    body += chunk;
  });
  req.on('end', function () {
   
    // 解析参数
    body = querystring.parse(body);
    //parse before:body->xx=11&yy=22形式    parse after body:{"xx":"11","yy":"22"}
    // 设置响应头部信息及编码
    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);

 
 
//下面的列子是nodejs 客户端服务端

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的更多相关文章

  1. [并发并行]_[线程模型]_[Pthread线程使用模型之三 客户端/服务端模型(Client/Server]

    Pthread线程使用模型之三 客户端/服务端模型(Client/Server) 场景 1.在客户端/服务端模型时,客户端向服务端请求一些数据集的操作. 服务端执行执行操作独立的(多进程或跨网络)– ...

  2. win10操作系统下oracle11g客户端/服务端的下载安装配置卸载总结

    win10操作系统下oracle11g客户端/服务端的下载安装配置卸载总结 一:前提 注意:现在有两种安装的方式 1. oracle11g服务端(64位)+oracle客户端(32位)+plsql(3 ...

  3. Socket客户端/服务端简单实例

    1.client端 package demo.socket; import java.io.BufferedReader;import java.io.IOException;import java. ...

  4. FastSocket客户端/服务端通讯示例

    新建控制台项目,命名为Server 添加FastSocket.SocketBase,FastSocket.Server引用   Socket命令服务类: Sodao.FastSocket.Server ...

  5. java.net.SocketException:Software caused connection abort: recv failed 异常分析 +socket客户端&服务端代码

    java.net.SocketException:Software caused connection abort: recv failed 异常分析 分类: 很多的技术 2012-01-04 12: ...

  6. iOS开发推送--客户端 服务端

    1.推送过程简介 (1)App启动过程中,使用UIApplication::registerForRemoteNotificationTypes函数与苹果的APNS服务器通信,发出注册远程推送的申请. ...

  7. Android应用源码基于安卓的校园二手交易系统客户端+服务端+数据库

    该源码是校园二手交易系统应用带服务端,也是一个基于安卓和javaweb的校园二手交易系统,包括整套安卓客户端.javaweb服务端.mysql数据库,可以进行基本的列表显示帖子.显示帖子详情.用户注册 ...

  8. 利用TCP 客户端---->服务端 传送文件到指定路径,并返回一个友好的回馈

    首先盲写的一个传输文件的方法,但测试发现了一个非常不容易发现的问题,这里先说明一下. 错误的代码如下: package com.TCP.java; import java.io.File; impor ...

  9. cocos2d-lua ARPG手机游戏《烈焰遮天》(客户端+服务端+数据库)发布说明

    服务器发布流程及其规范1,环境准备        a, mvn命令行:从\\10.21.210.161\share\tools\apache-maven-3.1.1-bin.tar.gz取出安装包,  ...

  10. Python后端(一)——客户端/服务端

    网址组成(四部分) 协议      http, https(https 是加密的http) 主机      g.cn zhihu.com之类的网址 ,因此一般不用填写 路径      下面的「/」和「 ...

随机推荐

  1. Node.js简述

    Node.js是2009年5月由Ryan Dahl 发布的服务器程序. 它封装了Google V8 JavaScript 引擎, 并将其重建为可在服务器上使用. 它旨在提供一种简单的构建可伸缩网络程序 ...

  2. JAVA中经过nginx反向代理获取客户端ip并获取相关坐标等信息

    关于搜狐新浪ip库查询接口的使用 直接输出访客ip及所在城市: <script src="http://pv.sohu.com/cityjson?ie=utf-8" > ...

  3. require,import区别

    链接:https://www.zhihu.com/question/56820346 遵循的模块化规范不一样 模块化规范:即为 JavaScript 提供一种模块编写.模块依赖和模块运行的方案.谁让最 ...

  4. windows server下设置远程会话自动注销

    通过远程桌面连接windows server服务器时,经常是直接关闭远程桌面程序,而没有注销远程登录的用户,这样导致有很多远程桌面启动的进程依然运行在服务器上,对服务器产生了不必要的开销,其实作为se ...

  5. 前端表单验证常用的15个JS正则表达式

    在表单验证中,使用正则表达式来验证正确与否是一个很频繁的操作,本文收集整理了15个常用的javaScript正则表达式,其中包括用户名.密码强度.整数.数字.电子邮件地址(Email).手机号码.身份 ...

  6. SVN客户端使用

    1.在SVN服务器添加新的用户,复制SVN URL(路径/目录). 2.在客户端电脑上下载安装SVN客户端,配置hosts文件中的内容和SVN服务器的hosts文件内容一致. hosts路径:C:\W ...

  7. vuex-getter

    store 的计算属性. getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算 const store = new Vuex.Store({ state: { t ...

  8. python基础--windows环境下 安装python2和python3

    一.  python 安装 1. 下载安装包 1 2 3 https://www.python.org/ftp/python/2.7.14/python-2.7.14.amd64.msi    # 2 ...

  9. 第二周例行报告psp

    此作业要求详见https://edu.cnblogs.com/campus/nenu/2018fall/homework/2127 (1)psp表 本周进度条 累计进度图 本周PSP饼状图

  10. 【转】Win32程序中调用ActiveX控件

    #include "stdafx.h" #include <iostream> #include <windows.h> #include <comd ...