nodejs的request模块提交json数据的方法

该模块的源代码地址:

https://github.com/request/request

注意:

代码以apicloud访问云端数据库为例子,所以有自定的heads信息,测试时,将这些无用信息去掉即可

安装request模块

node install request

加载request模块

var request = require('request');

方法一:

使用json,对应的值为要提交的json数据

var r=request({
            url: 'https://d.apicloud.com/mcm/api/user/login',
            method: "POST",
            headers: {
              "X-APICloud-AppId": APP_ID,
              "X-APICloud-AppKey": appKey
            },
            json:{"username":"admin","password":"123456"}//提交的数据,并且返回的body也是json类型
        },
        function (error, response, body) {
            console.log('v:'+1);
            console.log("body:"+JSON.stringify(body));
            console.log("userId:"+body.userId)
            if (!error && response.statusCode == 200) {
              console.log(body) //
            }
            //var bodyJson=JSON.parse(body);
            resp.json(body);
        })

方法二

json属性为true,将json数据放到body中

request({
            url: 'https://d.apicloud.com/mcm/api/user/login',
            method: "POST",
            json:true,//发送数据和返回数据都是json类型
            headers: {
              "X-APICloud-AppId": APP_ID,
              "X-APICloud-AppKey": appKey
            },
            body: {"username":"admin","password":"123456"}
        },
        function (error, response, body) {
            console.log('v:'+1);
            console.log("body:"+JSON.stringify(body));
            console.log("userId:"+body.userId)
            if (!error && response.statusCode == 200) {
              console.log(body) //
            }
            //var bodyJson=JSON.parse(body);
            resp.json(body);
        })

方法三

指定json属性为true,并调用form()方法提交json数据

var r=request({
            url: 'https://d.apicloud.com/mcm/api/user/login',
            method: "POST",
            json:true,//发送数据和返回数据都是json类型,此处必须设置为true
            headers: {
              "X-APICloud-AppId": APP_ID,
              "X-APICloud-AppKey": appKey
            },

        },
        function (error, response, body) {
            console.log('v:'+1);
            console.log("body:"+JSON.stringify(body));
            console.log("userId:"+body.userId)
            if (!error && response.statusCode == 200) {
              console.log(body) //
            }
            //var bodyJson=JSON.parse(body);
            resp.json(body);
        })
      r.form({"username":"admin","password":"123456"})

总结:
在option中的json属性,要么为true,要么是提交的json数据,返回的body,自动转换为json类型


原文出处:/show_1C7byuw5wrj.html