はじめに
HTTP2でもPOSTやGETがあるらしくらいしか分かってません。
中の通信はバイナリベースでも表面上はHTTP/1.1あたりと互換性が
あるらしいので、POSTメソッドもこれまでと変わらずに扱えるようです。
POSTメソッドで渡されたパラメータを参照するには
コールバックを有効にしてHTTP2サーバーを生成。
trusterd.conf.rb
s = HTTP2::Server.new({
…
# callback default: false
:callback => true,
…
})
set_map_to_strage_cbでコールバック内でPOSTパラメータを
s.body
と受け取れる。
trusterd.conf.rb
s.set_map_to_strage_cb {
if s.request.uri == "/test"
s.set_content_cb {
s.rputs s.unparsed_uri+"\n"
if s.body
s.rputs s.body+"\n"
end
s.rputs "hello trusterd!"
}
end
}
POSTする
一応、POSTを発行する側のHTMLも載せときます。
<html>
<form method="POST" action="https://127.0.0.1:8080/test">
<input type="text" name="text">
<input type="submit" value="post">
</form>
</html>
TLS無効で動かしている場合は、httpsをhttpに。
おわりに
パラメータを受け取ったあとはRuby力が高ければ、簡単にハッシュや
もっと賢い入れ物に展開出来るんだろうと想像を巡らす日々です。