2. COMオブジェクトの作成
①Visual Stadio 2019を管理者として実行します
②新しいプロジェクトの作成をクリックします
③「クラスライブラリ(.Net Framework)」を選択し、次へボタンをクリックします
※選択時には、間違って「クラスライブラリ」を選択しないように気を付けてください。
④プロジェクト名を入力し、フレームワークを「.Net Framework 4.8」を選択し、作成ボタンをクリックします
⑤プロジェクトタブをクリックし、新しい項目の追加(W)をクリックします
⑥COMクラスを選択し、追加ボタンをクリックします
⑦公開するインターフェイスを追加します
※POSTで同期通信でAPIを呼び出すサンプルです
Function CallAPI()
Dim url As String = "https://sys-link-ai-api.herokuapp.com/predict"
'GETの場合には、クエリーをURLに続けて記述します
'Dim url As String = "http://api.nhk.or.jp/v1/pg/list/" & strArea & "/" & strService & "/" & strDate & ".json?key=" & APIKey
'-------ここからはAPI通信のお約束部分-------
'指定されたURLへのHTTP通信を生成して呼び出す
Dim req As HttpWebRequest = HttpWebRequest.Create(url)
' POST送信する文字列を作成
Dim postData As String = "{""feature"": [0.5,0.5]}"
' バイト型配列に変換
Dim postDataBytes As Byte() = System.Text.Encoding.ASCII.GetBytes(postData)
' POSTメソッド
req.Method = "POST"
' POST する為の仕様
req.ContentType = "application/json"
' POST送信するデータの長さを指定
req.ContentLength = postDataBytes.Length
'データをPOST送信するためのStreamを取得
Dim reqStream As System.IO.Stream = req.GetRequestStream()
'送信するデータを書き込む
reqStream.Write(postDataBytes, 0, postDataBytes.Length)
reqStream.Close()
'サーバーからのレスポンスを受け取る
Dim res As HttpWebResponse = req.GetResponse()
'レスポンス・ボディの取得と表示
'レスポンスのストリームを取得する
Dim resStearm As Stream = res.GetResponseStream()
'レスポンスを読み取る器を用意して
Dim sr As StreamReader = New StreamReader(resStearm)
'最後までレスポンスを読み込む
Dim ResHTML As String = sr.ReadToEnd()
'リソース解放
resStearm.Close()
sr.Close()
res.Close()
Debug.WriteLine(ResHTML)
Return ResHTML
End Function
⑧ソリューションエキスプローラー上で、右クリックし、プロパティを選択します。
⑨アプリケーションタブを選択して、アセンブリ情報ボタンをクリックし、アセンブリ画面を表示し、「アセンブリをCOM参照可能にする(M)」を選択し、OKボタンをクリックします。
⑩コンパイルタブを選択し、ターゲットCPU(T)で「x64」を選択、「COM相互運用機能の登録」にチェックを入れます
⑪ビルドタブを選択し、ビルドします