public static void GetResponse(string section, string action, Hashtable postdata, Action <PResponse> callback) { if (postdata == null) { postdata = new Hashtable(); } else { postdata.Remove("publickey"); postdata.Remove("section"); postdata.Remove("action"); } postdata.Add("publickey", PUBLICKEY); postdata.Add("section", section); postdata.Add("action", action); var json = JSON.JsonEncode(postdata); var buffer = Encoding.UTF8.GetBytes("data=" + Encode.Base64(json) + "&hash=" + Encode.Md5(json + PRIVATEKEY)); var task = MakeAsyncRequest(buffer); if (string.IsNullOrEmpty(task.Result) || task.Exception != null || task.IsCanceled || task.IsFaulted) { callback(PResponse.GeneralError(1)); return; } var results = (Hashtable)JSON.JsonDecode(task.Result); if (!results.ContainsKey("success") || !results.ContainsKey("errorcode")) { callback(PResponse.GeneralError(1)); return; } callback(new PResponse { success = (bool)results["success"], errorcode = (int)(double)results["errorcode"], json = results }); }