private string Upload(string uri, string method, SortedList vars) { SortedList l = new SortedList(); // 1. format body data string data = ""; if (vars != null) { foreach (DictionaryEntry d in vars) { authdata += d.Key.ToString() + HttpUtility.UrlEncode(d.Value.ToString()) + "&"; data += d.Key.ToString() + "=" + HttpUtility.UrlEncode(d.Value.ToString()) + "&"; } } // 2. setup basic authenication string authstring = Convert.ToBase64String(Encoding.ASCII.GetBytes(String.Format("{0}:{1}", id, token))); // 3. perform POST/PUT/DELETE using WebClient ServicePointManager.Expect100Continue = false; Byte[] postbytes = Encoding.ASCII.GetBytes(data); WebClient client = new WebClient(); client.Headers["X_agbara_SIGNATURE"] = authstring; client.Headers.Add("Authorization", String.Format("Basic {0}", authstring)); client.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); //byte[] resp = client.UploadData(uri, method, postbytes); byte[] resp = AsyncCtpExtensions.UploadDataTaskAsync(client, uri, method, postbytes).Result; return(Encoding.ASCII.GetString(resp)); }
private string Download(string uri, SortedList vars) { // 1. format query string if (vars != null) { string query = ""; foreach (DictionaryEntry d in vars) { authdata += d.Key.ToString() + HttpUtility.UrlEncode(d.Value.ToString()) + "&"; query += "&" + d.Key.ToString() + "=" + HttpUtility.UrlEncode(d.Value.ToString()); } if (query.Length > 0) { uri = uri + "?" + query.Substring(1); } } // 2. setup basic authenication string authstring = Convert.ToBase64String( Encoding.ASCII.GetBytes(String.Format("{0}:{1}", id, token))); // // 3. perform GET using WebClient WebClient client = new WebClient(); client.Headers["X_agbara_SIGNATURE"] = authstring; client.Headers["Authorization"] = String.Format("Basic {0}", authstring); //Uri ur = new Uri(uri); byte[] resp = AsyncCtpExtensions.DownloadDataTaskAsync(client, uri).Result;// client.DownloadData(ur); return(Encoding.ASCII.GetString(resp)); }