public string ToJson()
{
var sb = new StringBuilder();
// in array of one for now
sb.AppendFormat("[{{ \"a\" : \"{0}\"", _command);
foreach (var arg in _arguments)
{
// need to quote strings only?
sb.AppendFormat(", \"{0}\" : \"{1}\"", arg.name, arg.value);
}
sb.Append(" }]");
return sb.ToString();
}
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; }