電気ウナギ的○○

About Home

え?http.server って POST メソッドが使えないの???

shinoda (2020年2月 6日 23:35)
複数の Raspberry Pi などの端末につながったカードリーダーで FeliCa カードを読んで、http プロトコルでカード情報をサーバに送る仕組みを作ってる。

データを送ってリターンコードを受け取るだけの簡単な API の仕組みなので(データ種はカード新規登録、読み込み時間報告、カード登録キャンセルなど色々あるけど)、サーバ側も Apache とかインストールはせず Python で書こうかと思った。クライアント側のプログラムを Python で書いてるんでね。

ところが、ネット(Qiita「pythonでローカルwebサーバを立ち上げる」など)で拾った下のようなスクリプトを走らせて、そこに 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 のようだ。

20200206_pyserver.jpg

うーん・・・POST メソッドを使うには、http.server 以外にも import せんといかんのかいな?面倒くさっ。

というわけで、サーバ側は Node.js で組むことにした。(そして今、ほぼ完成してちゃんと動いている)

ただ、Python も JavaScript(しかも Node.js 拡張版)も日頃使ってる言語じゃないので、いちいちググりながら組んでいくのが面倒だけど、ま、これも勉強だからな。
仕事をしつつ勉強できるというのは良いことだ(笑)。そう思っておこう。

電気ウナギ的○○

電気ウナギ的○○

About Back

コメント(0)

電気ウナギ的○○

電気ウナギ的○○

About Back

トラックバック(0)

トラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/5534

電気ウナギ的○○

About This Site

電気ウナギ的○○
岩国在住。広島で働く超零細IT企業社長のいわゆる社長日記。
何か、酒と食い物のことばかり書いているようで・・・お察しのとおり、肥満体です:-)


2011/06/24
iPhone用サイト公開

Create with jQuery, jQTouch.


CLOSE