最初にひとこと: POSTをブックマークすることはできません
経緯
最近また本業でWebサービスの開発とかやってます(しかもJava)。
で、Webサービスの画面って当然ログイン画面があって、開発中は対象の画面だけテストしたいんですが、毎回毎回ログインするのが大変なんですよね。
解決方法としては、PuppeteerでE2Eテストを自動化したり、デバッグ(開発中)モードであればログインをすっ飛ばすという仕組みを実装するというのもアリなんですが、そもそもユーザーIDとパスワードを付けてブックマークできたらクリックするだけで手軽なのになぁという考えから。
つまり
http://localhost:8080/your-apps/login?method=POST&user=admin&password=pass
みたいなことをやりたいって話です。
ただクエリストリングにmethod=POSTって書いてもPOSTにはなりません^^;
なので、POSTをブックマークすることは当然できないんですよね。
それなら、代わりにPOSTしてくれるページに、パラメーターをGETで渡してあげればいいじゃん、という発想から実装したものがコチラです。
細かいソースはGitHubを見てもらうとして。
file:///C:/your-local-directory/get-to-post/index.html#http://localhost:8080/your-apps/login?username=admin&password=pass
というようなURLでアクセスすれば、
#以降の内容を解釈してPOSTしてくれるというものです。
なお、formのパラメーターはクエリストリングで指定します。
また、デバッグモードも搭載しており
file:///C:/your-local-directory/get-to-post/index.html?debug#http://localhost:8080/your-apps/login?username=admin&password=pass
というような指定で、送信前のform内容可視化・自動submitオフ(submitボタン表示)で動作します。つまり、送信前のページにformが表示されるだけ。
注意
注意書きにも書きましたが、指定されたurlにどこへでもPOSTしますので、攻撃の踏み台にもなりかねないため、このindex.htmlをパブリックにアクセスできるような場所に配置・公開しないようにしてくださいね。