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

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();

时间: 2025-01-20 01:32:28

HTTP客户端/服务端 POST/GET的相关文章

Android版网络办公系统应用客户端+服务端

该项目源码是Android版网络办公系统应用客户端+服务端,也是一个简单的网上办公系统的Android客户端,项目有服务端和客户端部分的源码的,客户端开发环境eclipse  AVD版本 4.0服务器 phpStudy 2013集成环境 Apache+php5.3+ISAPI模式 phpStudy 2013集成环境绿色版下载http://www.phpstudy.net/phpstudy/phpStudy2013d.zip官网   http://www.phpstudy.net/ android

网易新闻应用源码完整版客户端+服务端源码

这个源码是从安卓教程网android分享过来的,看到这个项目比较不错,就转了.网易新闻应用源码完整版客户端+服务端源码,仿网易新闻,android端+服务器端1,为了加快访问速度,服务器端数据是写死了的,数据太多的就复制粘贴了,不是数据库查询的2,新闻图片下载代码注释掉了(网速给力的可以放开注释),显示的是默认图片 3.运行时记得改android端Constantvalues类里面的IP地址4,  UI结合使用的挺不错的等.<ignore_js_op>   <ignore_js_op&g

Android应用性能测试(客户端-服务端)平台实现

Android应用性能测试(客户端-服务端)平台实现 东海陈光剑 2014年5月23日 2:01:05 开源项目代码: https://github.com/universsky/EmmageePlus (基于Emmagee) https://github.com/universsky/EmmageePlus/blob/master/src/com/netease/qa/emmagee/service/EmmageeService.java /* * Copyright (c) 2012-201

手机游戏闯三国(乱世之刃)客户端+ 服务端源码 + 完整策划文档

闯三国(乱世之刃)客户端源码 + 服务端源码 + 完整策划文档) 乱世之刃源代码下载 <乱世之刃2>即将在近期上线了,为了让玩家感触最顺利的游戏体会,游戏商已做好了全部的准备,11月20日进行封测.[2] 游戏称号 浊世之刃 游戏种类 横版格斗游戏 游戏平台 iOS.Android 开发商 Xiamen Yidou 发行时刻 2012-11-15 适宜年纪 12岁以上 语    言 中文 安卓iOS游戏源码下载 目录 1 游戏介绍 2 游戏简介 ? 游戏布景 ? IOS有关信息 ? 游戏特征

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

首先盲写的一个传输文件的方法,但测试发现了一个非常不容易发现的问题,这里先说明一下. 错误的代码如下: 1 package com.TCP.java; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileNotFoundException; 6 import java.io.FileOutputStream; 7 import java.io.IOException; 8 import j

nagios一键安装脚本V1.0(客户端+服务端)

服务端脚本: #!//bin/bash #nagios一键安装脚本 path=`pwd` yum_user() { echo -e "\033[32m开始安装基础支持套件和添加用户......\033[0m" yum -y install httpd gcc glibc glibc-common gd gd-devel  if [ $? -ne 0 ] then    echo -e "\033[31mYUM安装失败!\033[0m"   exit 1 fi ech

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

java.net.SocketException:Software caused connection abort: recv failed 异常分析 分类: 很多的技术 2012-01-04 12:54 8004人阅读 评论(6) 收藏 举报 socket服务器bufferstring网络java 第 1个异常是java.net.BindException:Address already in use: JVM_Bind.该异常发生在服务器端进行new ServerSocket(port)(p

《倾国倾城》全套源码:客户端+服务端+资源,鄙视复制帖子

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 游戏官方下载:http://dwz.cn/RwTjl 游戏视频预览:http://dwz.cn/RzHHd 游戏开发博客:http://dwz.cn/RzJzI 游戏源码传送:http://dwz.cn/Nret1 <倾国倾城>全套源码,MMORPG手游,客户端cocos2d-x开发,服务端erlang语言开

java TCP客户端 服务端 互访

服务端: 1, 创建socket服务器服务,服务器端为了让客户端可以连接上,必须提供端口,监听一个端口 2,获取客户端对象,通过客户端的socket流和对应的客户端进行通信 3,获取客户端的socket流的读取流 4,读取数据并显示在服务器端 5,关闭资源 package cn.net.tcp; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.