読者です 読者をやめる 読者になる 読者になる

atelier:mitsuba

i love UI/UX, Blend, XAML, Behavior, P5, oF, Web, Tangible Bits and Physical computing. なにかあればお気軽にご連絡ください。atelier@c-mitsuba.com

OPC.Net計画その2:Windows PhoneからOPCの電源を切りたい。

OPC MetroStyleApps WindowsPhone C#
        private static HttpClient _httpClient;
        private static string OpcIp = "192.168.0.10"

        public static HttpClient SetHttpClient()
        {
            if (_httpClient == null)
            {
                _httpClient = new HttpClient { MaxResponseContentBufferSize = 256000 };
                _httpClient.DefaultRequestHeaders.Add("user-agent", "OlympusCameraKit");
            }
            return _httpClient;
        }
        /// <summary>
        /// 電源を切ります。
        /// </summary>
        /// <returns></returns>
        public async Task<string> ExecPowerOffAsync()
        {
            var httpClient = OPCUtility.SetHttpClient();

            var data = await httpClient.GetAsync(OpcIp + "exec_pwoff.cgi");
            var r = await data.Content.ReadAsStringAsync();
            
            return "PowerOff";
        }

コードはこんなかんじ。
毎回HttpClient書くのがめんどいので、別のメソッドによけました。
前回は非同期のところを.Resultでてきとーに流してたんですが、今回はちゃんとTaskにしています。

            var data = await httpClient.GetAsync(OpcIp + "exec_pwoff.cgi");
            var r = await data.Content.ReadAsStringAsync();

ようは、exec_pwoff.cgiを叩くだけなので簡単ですね。
ちなみに r にはなにも返ってきません。なくてもよいですね。