Raspberry Pi上に、Bottleを作られたWebサーバに対して、curlコマンド(HTTP通信のPOST)でデータを取得する方法を紹介します。
■前提
まず、Pythonはインストール済みという前提です。
インストールしていない人は、Pythonをインストールしてください。
■サーバを準備します
HTTP通信のPOSTで、データをもらうと、そのデータに応じて、値を返すサーバです。
■サンプルコード
コンソールを立ち上げて、以下のpythonコードを、app.pyで保存してください。
#!/bin/env python
# coding: utf-8
import json
from bottle import route, run, request, HTTPResponse, template, static_file
@route('/test', method='POST')
def test() :
var = request.json
retBody = {}
if var["req"] == "0":
retBody["res"] = "Good"
elif var["req"] == "1":
retBody["res"] = "Bad"
else :
retBody["res"] = "No request"
r = HTTPResponse(status=200, body=retBody)
r.set_header("Content-Type", "application/json")
return r
def main():
print('Server Start')
run(host='0.0.0.0', port=8000, debug=True, reloader=True)
if __name__ == '__main__':
main()
■サーバ起動方法
・コンソールを立ち上げて、
・app.pyが保存されているディレクトリに移動します。
・以下のコマンドを入力します。
$ python app.py
■curlコマンド
・コンソールを開いて、以下の内容を入力してください。
$ curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"req":"0"}' 127.0.0.1:8000/test
上記コマンドの応答として、以下が表示されるはずです。
{“res”: “Good”}
・次に、以下の内容を入力してください。
$ curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"req":"1"}' 127.0.0.1:8000/test
上記コマンドの応答として、以下が表示されるはずです。
{“res”: “Bad”}
・次に、以下の内容を入力してください。
$ curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"req":"2"}' 127.0.0.1:8000/test
上記コマンドの応答として、以下が表示されるはずです。
{“res”: “No request”}
■まとめ
今回は、Bottleを使った例として、curlコマンドで、Webサーバから値を取得する方法を紹介しました。
コメント