示例#1
0
        // Token: 0x06000031 RID: 49 RVA: 0x00002C58 File Offset: 0x00000E58
        public HttpResponse Row(Uri url, HttpMethod method, HttpContent content = null)
        {
            HttpResponse httpResponse = new HttpResponse();

            try
            {
                HttpRequestCreator httpRequestCreator = new HttpRequestCreator();
                bool ssl = this.Ssl;
                if (ssl)
                {
                    httpRequestCreator.Settings.SslAcceptAllCertificates = false;
                }
                else
                {
                    httpRequestCreator.Settings.SslAcceptAllCertificates = true;
                }
                httpRequestCreator.ValidatingCertificate      += this.Creator_ValidatingCertificate;
                httpRequestCreator.Settings.SslAllowedVersions = TlsVersion.Any;
                bool flag = this.UseProxy && this.Proxy != null;
                if (flag)
                {
                    Proxy proxy = this.Proxy;
                    proxy.SendRetryTimeout   = this.TimeOut;
                    httpRequestCreator.Proxy = proxy;
                }
                var httpRequest = new Rebex.Net.HttpRequest(url, httpRequestCreator);
                httpRequest.Method          = this.Method(method);
                httpRequest.ContinueTimeout = this.TimeOut;
                httpRequest.Timeout         = this.TimeOut;
                bool flag2 = this.Headers.Count > 0;
                if (flag2)
                {
                    foreach (KeyValuePair <string, string> keyValuePair in this.Headers)
                    {
                        httpRequest.Headers.Add(keyValuePair.Key, keyValuePair.Value);
                    }
                }
                bool flag3 = this.UserAgent != string.Empty;
                if (flag3)
                {
                    httpRequest.UserAgent = this.UserAgent;
                }
                bool flag4 = this.Referer != string.Empty;
                if (flag4)
                {
                    httpRequest.Referer = this.Referer;
                }
                bool expect = this.Expect100;
                if (expect)
                {
                    httpRequest.Expect100Continue = true;
                }
                else
                {
                    httpRequest.Expect100Continue = false;
                }
                bool flag5 = this.Cookies.Count > 0;
                if (flag5)
                {
                    httpRequest.Headers.Add(HttpRequestHeader.Cookie, this.Cookies.ToString());
                }
                httpRequest.Method            = this.Method(method);
                httpRequest.KeepAlive         = this.KeepAlive;
                httpRequest.AllowAutoRedirect = this.AllowAutoRedirect;
                bool flag6 = content != null;
                if (flag6)
                {
                    byte[] data = content.GetData();
                    httpRequest.ContentType   = content.ContentType;
                    httpRequest.ContentLength = content.GetContentLength();
                    using (Stream requestStream = httpRequest.GetRequestStream())
                    {
                        requestStream.Write(data, 0, data.Length);
                    }
                }
                using (var httpResponse2 = (Rebex.Net.HttpResponse)httpRequest.GetResponse())
                {
                    httpResponse.ContentEncoding = httpResponse2.ContentEncoding;
                    httpResponse.ContentLength   = httpResponse2.ContentLength;
                    httpResponse.ContentType     = httpResponse2.ContentType;
                    httpResponse.TlsCipher       = httpResponse2.Cipher;
                    httpResponse.CharacterSet    = httpResponse2.CharacterSet;
                    httpResponse.Address         = httpResponse2.ResponseUri;
                    httpResponse.StatusCode      = httpResponse2.StatusCode;
                    httpResponse.Headers         = new HeaderDictionary(httpResponse2.Headers);
                    httpResponse.Cookies         = this.Cookies.SetCookie(httpResponse2.Headers);
                    using (StreamReader streamReader = new StreamReader(httpResponse2.GetResponseStream()))
                    {
                        httpResponse.Content = streamReader.ReadToEnd();
                    }
                }
            }
            catch (WebException ex)
            {
                var  httpResponse3 = (Rebex.Net.HttpResponse)ex.Response;
                bool flag7         = httpResponse3 != null;
                if (!flag7)
                {
                    throw new HttpException(ex.Message);
                }
                httpResponse.ContentEncoding = httpResponse3.ContentEncoding;
                httpResponse.ContentLength   = httpResponse3.ContentLength;
                httpResponse.ContentType     = httpResponse3.ContentType;
                httpResponse.TlsCipher       = httpResponse3.Cipher;
                httpResponse.CharacterSet    = httpResponse3.CharacterSet;
                httpResponse.Address         = httpResponse3.ResponseUri;
                httpResponse.StatusCode      = httpResponse3.StatusCode;
                httpResponse.Headers         = new HeaderDictionary(httpResponse3.Headers);
                httpResponse.Cookies         = this.Cookies.SetCookie(httpResponse3.Headers);
                using (StreamReader streamReader2 = new StreamReader(httpResponse3.GetResponseStream()))
                {
                    httpResponse.Content = streamReader2.ReadToEnd();
                }
            }
            return(httpResponse);
        }
示例#2
0
        // Token: 0x06000032 RID: 50 RVA: 0x00003104 File Offset: 0x00001304
        public async Task <HttpResponse> RowAsync(Uri url, HttpMethod method, HttpContent content = null)
        {
            HttpResponse res = new HttpResponse();

            try
            {
                HttpRequestCreator creator = new HttpRequestCreator();
                bool ssl = this.Ssl;
                if (ssl)
                {
                    creator.Settings.SslAcceptAllCertificates = false;
                }
                else
                {
                    creator.Settings.SslAcceptAllCertificates = true;
                }
                creator.ValidatingCertificate      += this.Creator_ValidatingCertificate;
                creator.Settings.SslAllowedVersions = TlsVersion.Any;
                bool flag = this.UseProxy && this.Proxy != null;
                if (flag)
                {
                    Proxy proxy = this.Proxy;
                    proxy.SendRetryTimeout = this.TimeOut;
                    creator.Proxy          = proxy;
                    proxy = null;
                }
                var request = new Rebex.Net.HttpRequest(url, creator);
                request.Method          = this.Method(method);
                request.ContinueTimeout = this.TimeOut;
                request.Timeout         = this.TimeOut;
                bool flag2 = this.Headers.Count > 0;
                if (flag2)
                {
                    foreach (KeyValuePair <string, string> item in this.Headers)
                    {
                        request.Headers.Add(item.Key, item.Value);
                    }
                }
                bool flag3 = this.UserAgent != string.Empty;
                if (flag3)
                {
                    request.UserAgent = this.UserAgent;
                }
                bool flag4 = this.Referer != string.Empty;
                if (flag4)
                {
                    request.Referer = this.Referer;
                }
                bool expect = this.Expect100;
                if (expect)
                {
                    request.Expect100Continue = true;
                }
                else
                {
                    request.Expect100Continue = false;
                }
                bool flag5 = this.Cookies.Count > 0;
                if (flag5)
                {
                    request.Headers.Add(HttpRequestHeader.Cookie, this.Cookies.ToString());
                }
                request.Method            = this.Method(method);
                request.KeepAlive         = this.KeepAlive;
                request.AllowAutoRedirect = this.AllowAutoRedirect;
                bool flag6 = content != null;
                if (flag6)
                {
                    byte[] postData = content.GetData();
                    request.ContentType   = content.ContentType;
                    request.ContentLength = content.GetContentLength();
                    Stream stream2 = await request.GetRequestStreamAsync();

                    Stream stream = stream2;
                    stream2 = null;
                    try
                    {
                        stream.Write(postData, 0, postData.Length);
                    }
                    finally
                    {
                        if (stream != null)
                        {
                            ((IDisposable)stream).Dispose();
                        }
                    }
                    stream   = null;
                    postData = null;
                }
                WebResponse webResponse = await request.GetResponseAsync();

                var response = (Rebex.Net.HttpResponse)webResponse;
                webResponse = null;
                try
                {
                    res.ContentEncoding = response.ContentEncoding;
                    res.ContentLength   = response.ContentLength;
                    res.ContentType     = response.ContentType;
                    res.TlsCipher       = response.Cipher;
                    res.CharacterSet    = response.CharacterSet;
                    res.Address         = response.ResponseUri;
                    res.StatusCode      = response.StatusCode;
                    res.Headers         = new HeaderDictionary(response.Headers);
                    res.Cookies         = this.Cookies.SetCookie(response.Headers);
                    using (StreamReader sr = new StreamReader(response.GetResponseStream()))
                    {
                        HttpResponse httpResponse = res;
                        string       content2     = await sr.ReadToEndAsync();

                        httpResponse.Content = content2;
                        httpResponse         = null;
                        content2             = null;
                    }
                    //StreamReader sr = null;
                }
                finally
                {
                    if (response != null)
                    {
                        ((IDisposable)response).Dispose();
                    }
                }
                response = null;
                creator  = null;
                request  = null;
            }
            catch (WebException obj)
            {
                WebException ex        = obj;
                var          response2 = (Rebex.Net.HttpResponse)ex.Response;
                if (response2 == null)
                {
                    throw new HttpException(ex.Message);
                }
                res.ContentEncoding = response2.ContentEncoding;
                res.ContentLength   = response2.ContentLength;
                res.ContentType     = response2.ContentType;
                res.TlsCipher       = response2.Cipher;
                res.CharacterSet    = response2.CharacterSet;
                res.Address         = response2.ResponseUri;
                res.StatusCode      = response2.StatusCode;
                res.Headers         = new HeaderDictionary(response2.Headers);
                res.Cookies         = this.Cookies.SetCookie(response2.Headers);
                using (StreamReader sr2 = new StreamReader(response2.GetResponseStream()))
                {
                    HttpResponse httpResponse2 = res;
                    string       content3      = await sr2.ReadToEndAsync();

                    httpResponse2.Content = content3;
                    httpResponse2         = null;
                    content3 = null;
                }
                //StreamReader sr2 = null;
                response2 = null;
                ex        = null;
            }

            return(res);
        }