예제 #1
0
        /// <summary>
        /// Make a get request for the given url
        /// </summary>
        /// <param name="url">
        /// Abosolute URL please.
        /// <param name ="parameters">
        /// A dictionary from string to string to represents the data parameters for
        /// the get request.
        /// </param>
        /// </param>
        /// <returns>
        ///
        /// </returns>
        public IRestResponse MakeGetRequest
        (
            string url,
            IDictionary <string, string> parameters = null,
            URLENCODEMODE mode = URLENCODEMODE.EscapeData
        )
        {
            var request = PrepareRequest(url + EncodeGetURLParameters(parameters, mode));

            VerifyUrl(url);
            request.Method = Method.GET;
            var res = r_client.Get(request);

            return(res);
        }
예제 #2
0
        public async Task <IRestResponse> MakeGetRequestAsync
            (string url,
            IDictionary <string, string> parameters = null,
            URLENCODEMODE mode = URLENCODEMODE.EscapeData
            )
        {
            var t = await Task <IRestResponse> .Run
                    (
                () =>
            {
                return(this.MakeGetRequest(url, parameters, mode));
            }
                    );

            return(t);
        }
예제 #3
0
        /// <summary>
        /// This method encode the key and value for the url.
        /// </summary>
        /// <param name="arg">
        /// A map that repesents the parameters, if it's null, then the function
        /// will just return "";
        /// </param>
        /// <returns></returns>
        protected static string EncodeGetURLParameters
            (IDictionary <string, string> arg, URLENCODEMODE mode = URLENCODEMODE.EscapeData)
        {
            if (arg == null || arg.Count == 0)
            {
                return("");
            }
            var res = new StringBuilder("?");

            foreach (var kvp in arg)
            {
                string k = kvp.Key, v = kvp.Value;
                switch (mode)
                {
                case URLENCODEMODE.EscapeData:
                    k = Uri.EscapeDataString(k);
                    v = Uri.EscapeDataString(v);
                    break;

                case URLENCODEMODE.UnicodeURL:
                    k = HttpUtility.UrlEncode(k);
                    v = HttpUtility.UrlEncode(v);
                    break;

                default:
                    throw new Exception("Unimplimented URL Encode standard. ");
                }
                res.Append(k);
                res.Append("=");
                res.Append(v);
                res.Append("&");
            }
            string result = res.ToString();

            return(result.Substring(0, res.Length - 1));
        }