質問: 現在C#にて開発を行っています。 Google Chromeの拡張機能で、[データをPOSTとして指定したURLにJSON形式で送信する]という機能があるのですが、その送信されたデータを使用したいと考えています。 そこで、データを送信させて、そのデータをC#で取得・使用したいです。 一通り調べてASP.NETやHttpListnerクラス等でプログラムを書いてみましたが、「送信されたときにxxする」という方法が分かりません。 どなたかご教授いただければ幸いです。 【開発環境】 - OS:Windows 10 Home 64bit - IDE:Visual Studio 2017 Comminuty - メモリ:12GB (通常時4~6GB使用)
回答: 「POSTが送信されたときに自動で起動」するプログラムを作成することはできません。通常のアプリケーションがHTTP要求を処理するには、特定のポートを監視する必要があるからです。ですので`HttpListener`を使用する場合は少なくとも最初の要求まではブロッキングで待機するのが正しい実装です。 またASP.NETファミリーを用いる場合、要求の開始まではフレームワークが処理してくれますので、プログラマーは特定のURLに対応するアクションやフォームイベントを実装するだけで良いです。 どちらで実装するにせよ、原理的には「HTMLページのFormを用いたもの」と違いはありません。まずはそのレベルでリクエストを受信できるか確認してみてください。それからJSONはリクエスト本体に格納されているため、`HttpRequest.GetBufferedInputStream()`で得た`Stream`をJson.NETなどの適当なデシリアライザーに渡せばペイロードが読み出せると思います。