首页 > 代码库 > Node之http对象

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对象