node基础(一)——http模块
一、http模块
- http.createSverver()
-
http是node自带的模块,通过
require("http")
的方法载入; -
使用http创建服务器:
http.createServer(function(request,response){ response.writeHead(200,{"Content-Type":"text/plan"}); //设置返回头 response.write("this is test"); //返回的内容 response.end("end"); //响应结束 }).listen(2017); //设置端口
2.http.get(options[,callback]):发送请求,获取收据,通常不发送请求数据,可用于写爬虫.
-
options通常是个url;callback是回掉函数。
http.get("http://www.baidu.com/",function(response){ response.on("data",function(data){ // do somethiing }); response.on("end",function(){ //do something }); }).on("error",function(error){ console.log(error.message); })
3.http.request(options[,callback]):发送请求,带请求数据,可用于灌水评论,伪装请求等操作
- options:共11个参数,常用的有5个
hostname:请求的地址,可用于
url.parse()
方法得到,类似于www.imooc.com
这种写法,不带之后的路径;port:端口;
path:以
/
开头,通常是hostname 后面跟的路径,例如/course/docomment
;method:通常是POST;
headers:是一个object,可以使用事先正常请求途径获得的response header;
-
callback:回掉函数,可以打印出请求的结构代码
res.statusCode
和JSON.stringify(res.headers)
请求头; -
最后需要将请求数据写道请求体里;最后收到结束请求;
var http = require("http"); var querystring = require("querystring"); var postData = querystring.stringify({ //key:value }); var options = { "hostname":"", "port":"", "path":"", "method":"", "headers":{} }; var req = http.request(options,function(res){ console.log("status:" +res.statusCode); console.log("headers:" +JSON.stringify(res.headers)); res.on("data",function(chunk){ //do something }); res.on("end",function(){ console.log("完成"); }) }); req.on("error",function(e){ console.log(e.message); }) req.write(postData); req.end();