Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        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);
        }