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