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 にはなにも返ってきません。なくてもよいですね。