Node之http对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node之http对象相关的知识,希望对你有一定的参考价值。
http建立在TCP协议之上,提供了网络交互的多个api,我根据自己的实践介绍下request和get的用法,这是底层的方法,用express等框架都可以实现
以极速数据api为例,appkey可以去注册申请一个
http.request
调用方式 node http_request.js 13800000000
argv 指的是命令行参数
var qs = require(‘querystring‘) var http = require(‘http‘) var tel = process.argv.slice(2).join(‘ ‘).trim() if (!tel.length) { console.log(‘error‘); process.exit() } http.request({ host: ‘api.jisuapi.com‘, path: ‘/shouji/query?‘ + qs.stringify({appkey: ‘???‘, shouji: tel}) }, function (res) { var body = ‘‘ res.setEncoding(‘utf8‘); res.on(‘data‘, function (chunk) { body += chunk; }) res.on(‘end‘, function () { var obj = JSON.parse(body) console.log(‘归属地‘ + obj.result.city) console.log(‘运营商‘ + obj.result.company) }) }).end()
http.get
var qs = require(‘querystring‘) var http = require(‘http‘) var tel = process.argv.slice(2).join(‘ ‘).trim() if (!tel.length) { console.log(‘error‘); process.exit() } http.get({ host: ‘api.jisuapi.com‘, path: ‘/shouji/query?‘ + qs.stringify({appkey: ‘???‘, shouji: tel}) }, function (res) { var body = ‘‘ res.setEncoding(‘utf8‘); res.on(‘data‘, function (chunk) { body += chunk; }) res.on(‘end‘, function () { var obj = JSON.parse(body) console.log(‘归属地‘ + obj.result.city) console.log(‘运营商‘ + obj.result.company) }) })
http.request和http.get 核心的区别在于end()
最后介绍一个模块 superagent
首先安装 $ npm install superagent
var request = require(‘superagent‘) request.get(‘http://api.jisuapi.com/shouji/query‘) .query({appkey: ‘???‘}) .query({shouji: ‘13800000000‘}) .end(function (err, res) { if (res.ok) { var obj = JSON.parse(res.text) console.log(obj.result.company); } else { console.log(‘error ‘ + res.text); } })
以上是关于Node之http对象的主要内容,如果未能解决你的问题,请参考以下文章
node模块之path——path.join和path.resolve的区别