質問のタイトルが質問の目標について明確でない場合は申し訳ありません。
Bashだけを使用して応答専用のWebサーバーを作成できました。カールポスト要求を受信すると、入力された内容に関係なく結果を返します。
投稿リクエスト
curl -d '{"Name":"Lorem", "age":"34"}' -H "Content-Type: application/json" -X POST http://<ip>:8080/
サーバースクリプト(server.sh)
#!/bin/bash
while true; do
echo -e "HTTP/1.1 200 OK\n\n<h1>Title</h1>$(date)" \
| nc -l -k -p 8080 -q 1;
nc -l -k -p 8080 -q 1 | cat - | grep -o '{...\+}';
done
初めてカールをするとHTTP/1.1 200 OK\n\n<h1>Title</h1>$(date)
正しく返されますが、nc -l -k -p 8080 -q 1 | cat - | grep -o '{...\+}';
カールは終了しません。
2番目にカールを使用したときに返されませんでしたHTTP/1.1 200 OK\n\n<h1>Title</h1>$(date)
。これで結果が返され、nc -l -k -p 8080 -q 1 | cat - | grep -o '{...\+}';
カールは終了しません。
アイデアは、カール(nc -l -k -p 8080 -q 1 | cat - | grep -o '{...\+}';
+を使用jq
)の入力を処理して応答し、カール/接続を閉じることです。