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); } })
时间: 2024-10-09 21:43:52