Ejemplo n.º 1
0
        public static bool Invoke(IHttpRequestBase request, out byte[] result)
        {
            if (request == null)
            {
                throw new ArgumentNullException("request");
            }

            result = null;

            try
            {
                var webRequest = WebRequest.Create(request.GetRequestUrl()) as HttpWebRequest;

                if (webRequest == null)
                {
                    return false;
                }

                SetHttpWebRequest(request, webRequest);
                SetRequestStream(request, webRequest);

                return GetResponse(webRequest, out result);
            }
            catch (Exception ex)
            {
                // log the exception...
                return false; 
            }
        }
        //public static bool Invoke(IHttpRequestBase request, out byte[] result)
        public static bool Invoke(IHttpRequestBase request, out byte[] result)
        {
            if (request == null)
            {
                throw new ArgumentNullException("request");
            }

            result = null;

            try
            {
                var webRequest = WebRequest.Create(request.GetRequestUrl()) as HttpWebRequest;

                if (webRequest == null)
                {
                    return(false);
                }

                SetHttpWebRequest(request, webRequest);
                SetRequestStream(request, webRequest);

                return(GetResponse(webRequest, out result));
            }
            catch (Exception ex)
            {
                // log the exception...?? in most cases is a time out.
                //string aa = ex.ToString();
                //Console.WriteLine("ERROR: " + ex.Message + "Exiting!");
                return(false);
            }
        }
        //public static bool Invoke(IHttpRequestBase request, out byte[] result)
        public static bool Invoke(IHttpRequestBase request, out byte[] result)
        {
            if (request == null)
            {
                throw new ArgumentNullException("request");
            }

            result = null;

            try
            {
                var webRequest = WebRequest.Create(request.GetRequestUrl()) as HttpWebRequest;

                if (webRequest == null)
                {
                    return false;
                }

                SetHttpWebRequest(request, webRequest);
                SetRequestStream(request, webRequest);

                return GetResponse(webRequest, out result);
            }
            catch (Exception ex)
            {
                // log the exception...?? in most cases is a time out.
                //string aa = ex.ToString();
                //Console.WriteLine("ERROR: " + ex.Message + "Exiting!");
                return false;
            }
        }
        private static void SetRequestStream(IHttpRequestBase request, HttpWebRequest webRequest)
        //private static void SetRequestStream(IHttpRequestBase request, HttpWebRequest webRequest)
        {
            if (request.HttpVerbs != HttpVerbs.GET)
            {
                var requestBytes = request.GetRequestBytes();

                if (requestBytes != null && requestBytes.Length > 0)
                {
                    using (var requestStream = webRequest.GetRequestStream())
                    {
                        requestStream.Write(requestBytes, 0, requestBytes.Length);
                    }
                }
            }
        }
        // public static bool Invoke(IHttpRequestBase request, out string result)
        public static bool Invoke(IHttpRequestBase request, out string result)
        {
            if (request == null)
            {
                throw new ArgumentNullException("request");
            }

            result = string.Empty;

            byte[] contents;
            bool   requestState = Invoke(request, out contents);

            if (contents != null && contents.Length > 0)
            {
                result = request.Encoding.GetString(contents);
            }

            return(requestState);
        }
        // public static bool Invoke(IHttpRequestBase request, out string result)
        public static bool Invoke(IHttpRequestBase request, out string result)
        {
            if (request == null)
            {
                throw new ArgumentNullException("request");
            }

            result = string.Empty;

            byte[] contents;
            bool requestState = Invoke(request, out contents);

            if (contents != null && contents.Length > 0)
            {
                result = request.Encoding.GetString(contents);
            }

            return requestState;
        }
        //private static void SetHttpWebRequest(IHttpRequestBase request, HttpWebRequest webRequest)
        private static void SetHttpWebRequest(IHttpRequestBase request, HttpWebRequest webRequest)
        {
            webRequest.Timeout           = request.Timeout;
            webRequest.AllowAutoRedirect = false;
            webRequest.Method            = request.HttpVerbs.ToString().ToUpper();
            webRequest.ContentType       = request.ContentType;
            webRequest.ProtocolVersion   = request.ProtocolVersion;
            webRequest.Accept            = request.Accept;

            if (request.postData != "")
            {
                Stream RequestStream = webRequest.GetRequestStream();
                //    byte[] RequestBytes = Encoding.GetEncoding("utf-8").GetBytes(xmlTask);
                RequestStream.Write(Encoding.GetEncoding("utf-8").GetBytes(request.postData), 0,
                                    Encoding.GetEncoding("utf-8").GetBytes(request.postData).Length);
                RequestStream.Close();
            }

            if (request.Headers.Count != 0)
            {
                for (int i = 0; i < request.Headers.Count; ++i)
                {
                    string header = request.Headers.GetKey(i);

                    foreach (string value in request.Headers.GetValues(i))
                    {
                        webRequest.Headers.Add(header, value);
                    }
                }
            }


            if (request.Cookies.Count > 0)
            {
                webRequest.CookieContainer = new CookieContainer();
                webRequest.CookieContainer.Add(request.Cookies);
            }
        }
        //private static void SetRequestStream(IHttpRequestBase request, HttpWebRequest webRequest)
        private static void SetRequestStream(IHttpRequestBase request, HttpWebRequest webRequest)
        {
            if (request.HttpVerbs != HttpVerbs.GET)
            {
                var requestBytes = request.GetRequestBytes();

                if (requestBytes != null && requestBytes.Length > 0)
                {
                    using (var requestStream = webRequest.GetRequestStream())
                    {
                        requestStream.Write(requestBytes, 0, requestBytes.Length);
                    }
                }
            }
        }
        //private static void SetHttpWebRequest(IHttpRequestBase request, HttpWebRequest webRequest)
        private static void SetHttpWebRequest(IHttpRequestBase request, HttpWebRequest webRequest)
        {
            webRequest.Timeout = request.Timeout;
            webRequest.AllowAutoRedirect = false;
            webRequest.Method = request.HttpVerbs.ToString().ToUpper();
            webRequest.ContentType = request.ContentType;
            webRequest.ProtocolVersion = request.ProtocolVersion;
            webRequest.Accept = request.Accept;

            if (request.postData != "")
            {
                Stream RequestStream = webRequest.GetRequestStream();
                //    byte[] RequestBytes = Encoding.GetEncoding("utf-8").GetBytes(xmlTask);
                RequestStream.Write(Encoding.GetEncoding("utf-8").GetBytes(request.postData), 0,
                    Encoding.GetEncoding("utf-8").GetBytes(request.postData).Length);
                RequestStream.Close();
            }

            if (request.Headers.Count !=0)
            {
              for (int i = 0; i < request.Headers.Count; ++i)
                {
                    string header = request.Headers.GetKey(i);

                    foreach (string value in request.Headers.GetValues(i))
                    {
                        webRequest.Headers.Add(header, value);
                    }
                }

            }

            if (request.Cookies.Count > 0)
            {
                webRequest.CookieContainer = new CookieContainer();
                webRequest.CookieContainer.Add(request.Cookies);
            }
        }
Ejemplo n.º 10
0
        private static void SetHttpWebRequest(IHttpRequestBase request, HttpWebRequest webRequest)
        {
            webRequest.Timeout = request.Timeout;
            webRequest.AllowAutoRedirect = false;
            webRequest.Method = request.HttpVerbs.ToString().ToUpper();
            webRequest.ContentType = request.ContentType;

            if (request.Cookies.Count > 0)
            {
                webRequest.CookieContainer = new CookieContainer();
                webRequest.CookieContainer.Add(request.Cookies);
            }
        }
Ejemplo n.º 11
0
        public static bool AsyncInvoke(IHttpRequestBase request, Action<string> callBack)
        {
            if (request == null)
            {
                throw new ArgumentNullException("request");
            }

            if (request.HttpVerbs == HttpVerbs.Get)
            {
                throw new ArgumentException("Async Invoke don't provide HttpVerbs.Get Method.");
            }

            try
            {
                var webRequest = WebRequest.Create(request.GetRequestUrl()) as HttpWebRequest;

                if (webRequest == null)
                {
                    return false;
                }

                SetHttpWebRequest(request, webRequest);

                var requestState = new AsyncRequestState();
                requestState.Request = request;
                requestState.HttpWebRequest = webRequest;
                requestState.AysncCallBack = callBack;
                webRequest.BeginGetRequestStream(GetRequestStreamCallback, requestState);

                return true;
            }
            catch (Exception ex)
            {
                // log the exception...
                return false; 
            }
        }