C#でドコモAPIにアクセスする。

Liplisにおしゃべり機能を実装しました。
なかなかいい感じです。

DocomoAPI 雑談APIのRESTのインターフェースを使ってアクセスしています。
https://dev.smt.docomo.ne.jp/?p=docs.api.index

リクエストのボディにはJsonで内容を設定する必要があります。
それを勘違いし、Postのパラメーターとして設定してハマりましたが、
DocomoAPIのサイトで質問したところ、親切にご回答頂き、
無事に応答を得ることが出来ました。

C#でアクセスしているサンプルが無かったので、晒してみます。

        private void apiAccess()
        {
            //URL
            string url = "https://api.apigw.smt.docomo.ne.jp/dialogue/v1/dialogue?APIKEY=XXXXXX";
 
            //文字コードを指定する
            Encoding enc = Encoding.UTF8;
 
            string reqstr = "{\"utt\":\"" + txtNaiyo.Text + "\", \"context\":\"" + txtContext.Text + "\", \"user\":\"99999\", \"nickname\":\"光\", \"nickname_y\":\"ヒカリ\", \"bloodtype\":\"B\", \"birthdateY\":\"1997\", \"birthdateM\":\"5\", \"birthdateD\":\"30\", \"age\":\"16\", \"constellations\":\"双子座\", \"place\":\"東京\", \"mode\":\"" + txtMode.Text + "\"}";
 
            //バイト型配列に変換
            byte[] postDataBytes = System.Text.Encoding.UTF8.GetBytes(reqstr);
 
            //WebRequestの作成
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            req.Method = "POST";
            req.ContentType = "application/json";
            req.ContentLength = postDataBytes.Length;
            Stream reqStream = req.GetRequestStream();
            reqStream.Write(postDataBytes, 0, postDataBytes.Length);
            reqStream.Close();
 
            //レスポンス取得
            WebResponse res = req.GetResponse();
            Stream resStream = res.GetResponseStream();
 
            //ストリーム読込
            using (StreamReader sr = new StreamReader(resStream, enc))
            {
                msgDocomoTalkResponse result = JsonConvert.DeserializeObject<msgDocomoTalkResponse>(sr.ReadToEnd());
 
                txtResult.Text = result.utt;
 
                txtContext.Text = result.context;
 
                txtMode.Text = result.mode;
            }
        }