Raspberry Pi 上で、Bottleで遊んでみる(curlコマンドでアクセスしてみる)

Bottle

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サーバから値を取得する方法を紹介しました。

コメント

タイトルとURLをコピーしました