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