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.js JavaScript 片段中的跳过代码

node模块之path——path.join和path.resolve的区别

node 环境下简单web服务器搭建代码

Node.js之Web学习笔记

片段“F1”不能在这里传播,因为“节点”类型的对象永远不能是“商店”类型

node.js 之 http 架设