nodejs 请求一个外部链接

2019-10-24  本文已影响0人  garyhu1

今天分享通过nodejs去请求一个外部链接。
主要很对get请求和post请求:
因为网站是http协议的,所以选择的是:

const http = require('http')
http.request(options[, callback])

GET

// GET 请求
get(options) {
        return new Promise((resolve,reject) => {

            let body = '';
  
            // 发出请求
            let req = http.request(options,(res) => {
                res.on('data',(data) => {// 监听数据
                    body += data;
                }).on("end", () => {
                    console.log("HTTP DATA >>",body)
                    resolve(JSON.parse(body));
                })
            });

            req.on("error",(e) => {
                console.log("HTTP ERROR >>",e)
                reject(e)
            });
            
            //记住,用request一定要end,如果不结束,程序会一直运行。
            req.end();
        });
    },

上面方法中的options如下

let options = {
            host: 'localhost',
            port: '7002',
            path: '/show',
            method: 'GET',
            headers:{
                "Content-Type": 'application/json',
            }    
}

=======================================

POST

// POST请求
    post(options,data) {
        // let options = {
        //     host: 'localhost',
        //     port: '7002',
        //     path: '/update',
        //     method: 'POST',
        //     headers:{
        //         "Content-Type": 'application/json',
        //         "Content-Length": data.length
        //     }    
        // }

        return new Promise((resolve,reject) => {
            let body = '';
            let req = http.request(options,(res) => {
                res.on('data',(chuck) => {
                    body += chuck;
                }).on('end', () => {
                    resolve(JSON.parse(body))
                })
            });

            req.on('error',(e) => {
                reject(e)
            });

            req.write(data);
            req.end();
        });
        
    }

总结:

可以把上面方法封装在一个文件中,方便调用

上一篇下一篇

猜你喜欢

热点阅读