예제 #1
0
        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);
                }
            }

        }
예제 #2
0
        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);
                }
            }


        }