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
});
}