Espruino를 WiFi에 연결하여 POST 요청 보내기

9053 단어 JavaScriptEspruino
이전 기사 CC3000 와이파이 모듈에서 get 요청을 성공적으로 제출했는데 이번엔 POST 요청을 제출해보겠습니다.GET가 요청한 경우 포장법Http#get이 준비돼 있어 수월하지만, POST에 직접 요청하려면 직접Http#request 방법이 필요하다.
인상이 node.js인 느낌이어서 접촉한 사람에게 익숙한 작법일 수도 있다.

목표


Espruino &CC3000에서 POST 요청!

연결선


이전 기사랑 똑같아요.

절차.


POST 팟캐스트를 테스트하는 서버를 만들었기 때문에 거기에 팟캐스트를 투입합니다.POST의 요구를 포기하면 응답으로 보낸 데이터가 메아리를 받기 때문에 이번에는 컨트롤러에 올리는 데 성공했습니다.

// wifi接続情報
var accessPointName = "######"; //SSID
var WPA2Key = "#######"; //PASSWORD

function postSample(){

  // オプションを設定
  var payload = {
    sample_arg: "1",
    sample_arg2: "2"
  };
  var queryString = 
      "sample_arg=" + payload.sample_arg +
      "&sample_arg2=" + payload.sample_arg2;

  var host = "node-test-rocky.herokuapp.com";
  var port = 80;
  var path = "/post_sample";
  var options = {
    host: host,
    port: port,
    path: path,
    method: "POST",
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
      'Content-Length': queryString.length
    }
  };

  var http = require("http");
  var dataAsString = "";
  var req = http.request( options, function(res) {
    res.on('data', function(data){ 
        // data chunkを繋ぎ込む
        dataAsString += data;
    });
    res.on('close', function(){ 
      console.log( 'from server' ); 
      console.log( dataAsString ); 
    });
  });  
  req.write( queryString );
  req.end();
}

// wifi繋ぎます
LED3.write(true);
var wlan = require("CC3000").connect();
LED2.write(true);
wlan.connect( accessPointName , WPA2Key , function (s) { 
  LED1.write(true);
  console.log('connected');
  if (s=="dhcp") {
    postSample();
  }
});

실행


GET 팟캐스트와 마찬가지로 완성에 시간이 걸립니다.그리고 서버도 heroku를 사용하므로 30초 정도 걸릴 수 있습니다.(이 녀석이 일정 시간 방문하지 않으면 서버가 잠들기 때문에 일어나는 데 시간이 걸린다.)
아래에서 보낸 데이터를 콘솔에 출력하면 성공합니다.

총결산


이렇게 하면 Espruino, 와이파이를 통해 WEB에 있는 POST 센서의 정보를 얻을 수 있다.그나저나 이거 쓸 때마다 어려워서 잠금장치 방법을 조금 했더니Gist 높아졌어요.sample_usage.js의 방법을 사용하여 POST 요청을 던질 수 있습니다.

좋은 웹페이지 즐겨찾기