/// <summary> /// Performs request to a specified API method /// </summary> /// <typeparam name="T">Response type</typeparam> /// <param name="path">API method path, e.g. "create_task"</param> /// <param name="parameters">Dictionary<string, string> OR raw string</param> public QencodeApiResponse Request <T>(string path, object parameters) { lastResponseRaw = null; lastResponse = null; string requestUrl = null; if (path.ToLower().IndexOf("http") == 0) { requestUrl = path; } else { requestUrl = this.url + "/" + this.version + "/" + path.Trim('/'); } if (parameters != null && !(parameters is String)) { parameters = QueryStringBuilder.BuildQueryString(parameters); } try { lastResponseRaw = HttpPost(requestUrl, parameters as string); } catch (Exception e) { throw new QencodeException("Error executing request to url: " + requestUrl, e); } var response = JsonConvert.DeserializeObject <T>(lastResponseRaw) as QencodeApiResponse; if (response == null || response.error == null) { throw new QencodeException("Invalid API response", lastResponseRaw); } if (response.error != 0) { throw new QencodeApiException(response.message); } return(response); }
public dynamic RequestDynamic <T>(string url) { lastResponseRaw = null; lastResponse = null; string requestUrl = url; try { lastResponseRaw = HttpGet(requestUrl); } catch (Exception e) { throw new QencodeException("Error executing request to url: " + requestUrl, e); } var response = JsonConvert.DeserializeObject <T>(lastResponseRaw) as dynamic; return(response); }