Playtomic.PRequest.GetResponse C# (CSharp) Method

GetResponse() public static method

public static GetResponse ( string section, string action, Hashtable postdata, Action callback ) : void
section string
action string
postdata System.Collections.Hashtable
callback Action
return void
        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
                });
        }

Usage Example

Ejemplo n.º 1
0
 /**
  * Performs a GeoIP lookup
  * @param	callback	Action<PlayerCountry, PResponse>	Your callback method
  */
 public static void Lookup(Action <PlayerCountry, PResponse> callback)
 {
     PRequest.GetResponse(SECTION, LOOKUP, null, response => {
         var data = response.success ? response.json : null;
         callback(new PlayerCountry(data), response);
     });
 }
All Usage Examples Of Playtomic.PRequest::GetResponse