ESP32-WROVERでHTTPS Serverを立ち上げ C#アプリと通信編

前回まででHTTPS Serverを作ってきましたが今回はそのHTTPS Serverと通信するC#アプリを作ってみます。

C#アプリはVisual Studio2019+C#+WPF+.Net Core3.1という組み合わせです。

では作っていきましょう!!!

Visual Studio2019を立ち上げ「新しいプロジェクトの作成(N)」を選びます。

「WPF App(.Net Core) C#」を選んで「次へ(N)」をクリックします。

New Project Create

プロジェクト名は”WpfAppHttpsServerComm”としました。

アイテムをウインドウに載せていきます。

アイテム種類名称
ButtonButtonConnectConnect
ButtonButtonPostPost
LabelLabelUrlURL
TextBoxTextBoxUrlhttps://esp32-mdns.local
LabelLabelPostDataPost Data
TextBoxTextBoxPostDataABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
LabelLabelResponseResponse
TextBoxTextBoxResponse空欄
LabelLabelStatusStatus
TextBoxTextBoxStatus空欄
アイテム一覧
Visual Studio画面

「Connect」ボタン、「Post」ボタンをダブルクリックしてそれぞれにコードを付け加えていきます。

「Connect」ボタンクリックでHttpClientクラスをインスタンス化します。

「Post」ボタンクリックでTextBoxPostDataの値とKey値”Cmd”とペアにしたコンテンツを生成してTextBoxUrlにPostリクエストを送ります。

「Connect」ボタンを分けているのはHttpClientクラスのインスタンス化を毎回やってしまうとその度に認証が行われるため時間がかかってしまうためです。

HttpClientクラスのインスタンス化を最初の1回だけにすると2回目以降の通信が速くなります。

C#アプリ側はこれで完成ですが、HTTPS Server側がPOSTリクエストに対応していないのでそのコードを足します。

ESP-IDF/esamples/protocols/http_server/simple/main/main.cにはPOSTリクエストコード例があるのでそれを使います。

POSTリクエストメソッドを用意します。POSTリクエストメソッドの処理内容は受け取ったPOSTリクエストデータをそっくりそのままレスポンスで返すだけです。

このPOSTリクエストメソッドをWeb Serverタスクとして登録します。

build/flashします。

C#アプリの方もbuildして起動します。

「connect」ボタンを押してから「Post」ボタンを押すとResponseが返ってきます。

これでSSL WiFi通信を使ったC#アプリ/機器の開発案件に対応できるな。無いけど…

ESP-IDFプロジェクトはGitHubにあります。

C#アプリプロジェクトもGitHubにあります。

次回は”https-server-example”プロジェクトをAPモードに対応させます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です