博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nodejs封装http请求
阅读量:6701 次
发布时间:2019-06-25

本文共 3084 字,大约阅读时间需要 10 分钟。

在nodejs中使用http请求,我们可以做很多事,比如对接第三方接口,数据采集,测试接口,等等。

var http = require("http");var urlUtil = require('url');var file = require("./file");var querystring = require('querystring');var HttpUtil = {    //get提交url,返回html数据    get : function(url,success,error){        http.get(url,function(res){            var result = "";            res.setEncoding("UTF-8");            res.on("data",function(data){                result += data;            });            res.on('error',error);            res.on('end',function(){                success(result);            });        }).on('error',this.requestError);    },    post : function(hostname,port,path,body,acceptType,contentType,success,error){        var bodyString = "";        if(body!=null && contentType == "application/json"){            bodyString = JSON.stringify(body);        }        else if(body!=null && contentType == "application/x-www-form-urlencoded"){            bodyString = querystring.stringify(body);        }        var opts = {            hostname : hostname,            port : port,            path : path,            method: 'post',            headers : {                'Accept':acceptType,                'Content-Type':contentType,                'Content-Length':bodyString.length            }        }         var req = http.request(opts,function(res){                        var result = "";            res.setEncoding("UTF-8");            res.on("data",function(data){                result += data;            });            res.on('error',error);            res.on('end',function(){                success(result);            });         });        req.on('error',this.requestError);        file.writeInFile(req);        req.write(bodyString);        req.end();    },    //提交表单参数,并返回html内容    postAndReturnHtml : function(url,body,success,error){        var urlConfig = urlUtil.parse(url);        var contentType = "application/x-www-form-urlencoded";        var acceptType = "text/html";        this.post(urlConfig.hostname,urlConfig.port,urlConfig.path,body,acceptType,contentType,success,this.responseError);    },    //get提交url参数,并返回json数据    getAndReturnJson : function(url,success,error){        this.get(url,function(data){            var data = JSON.parse(data);            success(data);        },this.responseError(error));    },    //提交json参数,并返回json    postAndReturnJson : function(url,body,success,error){        var contentType = "application/json";        var acceptType = "application/json";        var urlConfig = urlUtil.parse(url);        this.post(urlConfig.hostname,urlConfig.port,urlConfig.path,body,acceptType,contentType,function(data){            var data = JSON.parse(data);            success(data);        },this.responseError(error));    },    requestError : function(error){        console.log("请求失败--"+error.message);    },    responseError : function(error){        return  error || function(e){            console.log("响应失败--"+e.message);        };    }} module.exports = HttpUtil;

 

posted on
2016-03-17 19:56 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/miid/p/5289028.html

你可能感兴趣的文章
【大数据系列】hadoop单节点安装官方文档翻译
查看>>
代码生成
查看>>
使用模板引擎artTemplate的几个问题总结
查看>>
Linux基本命令+Makefile
查看>>
加强团队凝聚力建设方面采取的方法
查看>>
Spring Boot 使用常见问题
查看>>
Linux 常用命令
查看>>
Angularjs 动态添加指令并绑定事件
查看>>
iOS开发~UI布局(二)storyboard中autolayout和size class的使用详解
查看>>
Redis配置文件参数说明
查看>>
C#文件拖到TextBox中获取文件显示文件路径
查看>>
TSQL 根据表名生成UPDATE SELECT INSERT
查看>>
程序员的思维修炼》读书笔记
查看>>
Java第五次作业--面向对象高级特性(抽象类和接口)
查看>>
Linux进程间通信(四) - 共享内存
查看>>
python-访问者模式
查看>>
事件处理
查看>>
安卓自定义View进阶-分类与流程
查看>>
iOS开发多线程篇—线程安全
查看>>
android 学习随笔十六(广播 )
查看>>