Example #1
0
        public ActionResult Index(ProxyParams proxyParams, string action)
        {
            if (action.Equals("Submit", StringComparison.OrdinalIgnoreCase))
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(proxyParams.Url);
                request.Method        = proxyParams.Type;
                request.ContentType   = proxyParams.ContentType;
                request.ContentLength = proxyParams.ContentLength;
                if (proxyParams.Bytes != null)
                {
                    using (Stream requestStream = request.GetRequestStream())
                    {
                        requestStream.Write(proxyParams.Bytes, 0, proxyParams.Bytes.Length);
                    }
                }

                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
                    StreamReader reader       = new StreamReader(response.GetResponseStream(), true);
                    string       responseText = reader.ReadToEnd();
                    reader.Close();
                    reader.Dispose();
                    response.GetResponseStream().Close();
                    response.GetResponseStream().Dispose();
                    response.Close();
                    ViewBag.ResponseRaw = responseText;
                }

                return(View());
            }
            else
            {
                return(View());
            }
        }
Example #2
0
        public ProxyParamsViewModel(ProxyRepository proxyRepository)
        {
            if (proxyRepository == null)
            {
                throw new ArgumentNullException("proxyRepository");
            }

            _proxyRepository     = proxyRepository;
            _proxyParams         = new ProxyParams();
            _proxyParams.AppName = "Proxy Configuration Tool";
            Reset();
        }
Example #3
0
        public void Proxy(ProxyParams proxyParams)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(proxyParams.Url);

            request.Method        = proxyParams.Type;
            request.ContentType   = proxyParams.ContentType;
            request.ContentLength = proxyParams.ContentLength;
            if (proxyParams.Bytes != null)
            {
                using (Stream requestStream = request.GetRequestStream())
                {
                    requestStream.Write(proxyParams.Bytes, 0, proxyParams.Bytes.Length);
                }
            }

            #region get response
            using (WebResponse response = request.GetResponse())
            {
                Response.Clear();

                StreamReader reader       = new StreamReader(response.GetResponseStream());
                string       responseText = reader.ReadToEnd();

                byte[] contentBytes  = Encoding.ASCII.GetBytes(responseText);
                int    contentLength = contentBytes.Length;

                reader.Close();
                reader.Dispose();

                response.Close();

                for (var i = 0; i < response.Headers.Count; i++)
                {
                    if (response.Headers.GetKey(i).Equals("Content-Length", StringComparison.OrdinalIgnoreCase))
                    {
                        Response.Headers.Add(response.Headers.GetKey(i), contentLength.ToString());
                    }
                    else
                    {
                        Response.Headers.Add(response.Headers.GetKey(i), response.Headers.Get(i));
                    }
                }

                Response.Write(responseText);
                Response.Flush();
            }
            #endregion
        }
Example #4
0
 private bool RaiseCompleted(ProxyParams prm)
 {
     if (onCompleted == null)
     {
         return(false);
     }
     foreach (CompletedDelegate d in onCompleted.GetInvocationList())
     {
         var eventArgs = new ProxyEventArgs {
             ProxyParams = prm, Handled = false
         };
         d(eventArgs);
         if (eventArgs.Handled)
         {
             return(true);
         }
     }
     return(false);
 }
Example #5
0
        private bool RaiseBeforeRequest(ProxyParams prm)
        {
            if (onBeforeRequest == null)
            {
                return(false);
            }
            foreach (BeforeRequestDelegate d in onBeforeRequest.GetInvocationList())
            {
                var eventArgs = new ProxyEventArgs {
                    ProxyParams = prm, Handled = false
                };
                d(eventArgs);
                if (eventArgs.Handled)
                {
                    return(true);
                }
            }

            return(false);
        }
Example #6
0
        public void UploadImage(ProxyParams proxyParams, string originImageLink)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(originImageLink);

            request.Method = "GET";
            byte[] imageBuffer = new byte[1024];
            byte[] imageBytes;
            using (WebResponse response = request.GetResponse())
            {
                Stream         responseStream = response.GetResponseStream();
                MemoryStream   memoryStream   = new MemoryStream();
                BufferedStream bufferedStream = new BufferedStream(responseStream);
                int            length         = 0;
                while ((length = bufferedStream.Read(imageBuffer, 0, imageBuffer.Length)) > 0)
                {
                    memoryStream.Write(imageBuffer, 0, length);
                }

                responseStream.Close();
                responseStream.Dispose();


                bufferedStream.Close();
                bufferedStream.Dispose();

                imageBytes = memoryStream.ToArray();
                memoryStream.Close();
                memoryStream.Dispose();
            }

            var request2 = (HttpWebRequest)WebRequest.Create(proxyParams.Url);

            request2.Method      = proxyParams.Type;
            request2.ContentType = "text/xml"; //proxyParams.ContentType;

            if (imageBytes != null)
            {
                proxyParams.Data = string.Format(proxyParams.Data, System.Convert.ToBase64String(imageBytes));
            }
            request2.ContentLength = proxyParams.ContentLength;

            if (proxyParams.Bytes != null)
            {
                using (Stream requestStream = request2.GetRequestStream())
                {
                    requestStream.Write(proxyParams.Bytes, 0, proxyParams.Bytes.Length);
                }
            }

            #region get response
            using (WebResponse response = request2.GetResponse())
            {
                Response.Clear();

                StreamReader reader       = new StreamReader(response.GetResponseStream());
                string       responseText = reader.ReadToEnd();

                byte[] contentBytes  = Encoding.ASCII.GetBytes(responseText);
                int    contentLength = contentBytes.Length;

                reader.Close();
                reader.Dispose();

                response.Close();

                for (var i = 0; i < response.Headers.Count; i++)
                {
                    if (response.Headers.GetKey(i).Equals("Content-Length", StringComparison.OrdinalIgnoreCase))
                    {
                        Response.Headers.Add(response.Headers.GetKey(i), contentLength.ToString());
                    }
                    else
                    {
                        Response.Headers.Add(response.Headers.GetKey(i), response.Headers.Get(i));
                    }
                }

                Response.Write(responseText);
                Response.Flush();
            }
            #endregion
        }