public static async Task POSTAsync(string url, byte[] data, Dictionary<string, string> additionalHttpReqHeaders = null, Action<HttpRequestResult> callback = null, bool multipart = false) { HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(new Uri(url)); httpWebRequest.Method = "POST"; httpWebRequest.ContentType = "application/x-www-form-urlencoded"; if (multipart) { httpWebRequest.ContentType = string.Format("multipart/form-data; boundary={0}", MULTIPART_BOUNDARY); } if (additionalHttpReqHeaders != null) { foreach (var kv in additionalHttpReqHeaders) { httpWebRequest.Headers[kv.Key] = kv.Value; } } if (data != null) { using (Stream requestStream = await httpWebRequest.GetRequestStreamAsync()) { await requestStream.WriteAsync(data, 0, data.Length); } } HttpWebResponse response = (HttpWebResponse)await httpWebRequest.GetResponseAsync(); using (Stream respStream = response.GetResponseStream()) { HttpRequestResult result = new HttpRequestResult(); result.Content = (new StreamReader(respStream)).ReadToEnd(); result.ResponseHeaders = response.Headers; if (callback != null) { callback.Invoke(result); } } }
public static async Task GETAsync(string url, Dictionary<string, string> additionalHttpReqHeaders = null, Action<HttpRequestResult> callback = null) { HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(new Uri(url)); httpWebRequest.Method = "GET"; if (additionalHttpReqHeaders != null) { foreach (var kv in additionalHttpReqHeaders) { httpWebRequest.Headers[kv.Key] = kv.Value; } } HttpWebResponse response = (HttpWebResponse)await httpWebRequest.GetResponseAsync(); using (Stream respStream = response.GetResponseStream()) { HttpRequestResult result = new HttpRequestResult(); result.Content = (new StreamReader(respStream)).ReadToEnd(); result.ResponseHeaders = response.Headers; if (callback != null) { callback.Invoke(result); } } }