え?http.server って POST メソッドが使えないの???[プログラミング]
(2020-02-06 23:35:24) by shinoda
複数の Raspberry Pi などの端末につながったカードリーダーで FeliCa カードを読んで、http プロトコルでカード情報をサーバに送る仕組みを作ってる。
データを送ってリターンコードを受け取るだけの簡単な API の仕組みなので(データ種はカード新規登録、読み込み時間報告、カード登録キャンセルなど色々あるけど)、サーバ側も Apache とかインストールはせず Python で書こうかと思った。クライアント側のプログラムを Python で書いてるんでね。
import http.server
import socketserver
PORT = 3000
Handler = http.server.SimplehttpRequestHandler
with socketserver.TCPServer(("", PORT), Handler) as httpd:
print("serving at port", PORT)
httpd.serve_forever()
これが、501 エラーになるのだ。
127.0.0.1 - - [06/Feb/2020 22:41:16] code 501, message Unsupported method ('POST')
ってエラーログ吐いてる。
POST メソッドに対応してないようだ。ええ???
確かに、ブラウザからアクセス(つまり GET メソッドのアクセス)してみたらエラーにならず、サーバスクリプトを置いているディレクトリのファイルリストが表示された。GET メソッドは OK のようだ。
うーん・・・POST メソッドを使うには、http.server 以外にも import せんといかんのかいな?面倒くさっ。
というわけで、サーバ側は Node.js で組むことにした。(そして今、ほぼ完成してちゃんと動いている)
ただ、Python も JavaScript(しかも Node.js 拡張版)も日頃使ってる言語じゃないので、いちいちググりながら組んでいくのが面倒だけど、ま、これも勉強だからな。
仕事をしつつ勉強できるというのは良いことだ(笑)。そう思っておこう。
コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る
Powered by
MT4i 3.0.8