使用NodeJS和Axios到达IoT代理

时间:2018-07-20 11:13:44

标签: json node.js curl axios

我想在已部署在虚拟机中的代理中创建IoT实体。目前,我已经通过卷发进行交流,并且可以正常工作。

咨询“ curl”:

(curl http://192.168.56.103:8080/ngsi10/updateContext -s -S --header 'Content-Type: application/json' \
--header 'Accept: application/json' -d @- | python -mjson.tool) <<EOF
{
    "contextElements": [{
        "entityId": {
            "id": "01",
            "type": "example"
        },
        "attributes": [{
            "name": "numbers",
            "type": "int",
            "contextValue": 24
        }],
        "domainMetadata": [{
            "name": "location",
            "type": "point",
            "value": {
                "latitude": 37.982636,
                "longitude": -1.123510
            }
        }]
    }],
    "updateAction": "UPDATE"
}
EOF

这对我来说正常工作。

这是使用axios的nodejs的等效代码:

var config = {
    headers: {'Content-Type': 'application/json',
    'Accept': 'application/json'}
  };

  var dataJSon = [{
    "contextElements": [{
        "entityId": {
            "id": "01",
            "type": "example"
        },
        "attributes": [{
            "name": "numbers",
            "type": "int",
            "contextValue": 24
        }],
        "domainMetadata": [{
            "name": "location",
            "type": "point",
            "value": {
                "latitude": 37.982636,
                "longitude": -1.123510
            }
        }]
    }],
    "updateAction": "UPDATE"
}];

  const payload = {
    topic: 'topic',
    logs: dataJSon,
  };

  axios.get('http://192.168.56.103:8080/ngsi10/updateContext', dataJSon, config)
  .then(function (response) {
    // handle success
    console.log(response);
  })
  .catch(function (error) {
    // handle error
    console.log(error);
  })
  .then(function () {
    // always executed
  });

在执行最后一个操作时,经纪人告诉我他不理解该请求,我已经用Wireshark过滤了请求,但他做得不好,数据没有出现,并且只有一个标头出现在我的身上。 Los contenidos de los datos儿子JSON。

我会把它放在这里,以防有人帮我。提前非常感谢您。

1 个答案:

答案 0 :(得分:0)

呼叫-d发送POST请求。使用axios.post

axios.post('http://192.168.56.103:8080/ngsi10/updateContext', dataJSon, config)