public string Execute(Command command) { HttpWebRequest request = GetNextRequest(); string json = command.ToJson(); byte[] content = Encoding.UTF8.GetBytes(json); request.ContentLength = content.Length; using (Stream requestStream = request.GetRequestStream()) { requestStream.Write(content, 0, content.Length); requestStream.Close(); } HttpWebResponse response = (HttpWebResponse)request.GetResponse(); byte[] responseContent = new byte[response.ContentLength]; using (var responseStream = response.GetResponseStream()) { responseStream.Read(responseContent, 0, responseContent.Length); responseStream.Close(); } string responseString = Encoding.UTF8.GetString(responseContent); JArray a = JArray.Parse(responseString); JToken t = a[0]; command.OnCallback(t); return responseString; }