COM連携


3. APIを呼ぶAPIの例

①Visual Stadio 2019を管理者として実行します

②新しいプロジェクトの作成をクリックします

③「ASP .NET Webアプリケーション」を選択し、次へボタンをクリックします

④プロジェクト名を入力し、次へボタンをクリックします

⑤「Web API」を選択し、作成ボタンをクリックします

⑥次のような画面が表示されます。

⑦ソリューションエキスプローラーから、Controllers>ValueControllers.vbをクリックします。デファルトでValueControllerができています。

api/valuesで呼ばれたときに動く、GetValuesを以下のように修正し、APIを呼ぶように修正します

    ' GET api/values
    Public Function GetValues() As String
        Dim url As String = "https://sys-link-ai-api.herokuapp.com/predict"

        '-------ここからは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

⑧IIS Expressボタンをクリックし、APIサーバーを起動します。

⑨コマンドプロンプトから、curlコマンドで動作確認を行います。

※なお、POSTで呼ぶ場合には、以下のように指定します。

curl https://sys-link-ai-api.herokuapp.com/predict -X POST -H "Content-Type:application/json" -d "{\"feature\":[0.5,0.5]}"