示例#1
0
        private async Task GetApteka(string search)
        {
            await Task.Run(async() =>
            {
                try
                {
                    var collection = new CookieDictionary();
                    var doc        = new HtmlDocument();
                    var req        = new HttpRequest
                    {
                        EnableAdditionalHeaders = true,
                        UserAgent             = HttpHelper.ChromeUserAgent(),
                        Cookies               = collection,
                        ["Accept"]            = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
                        AllowAutoRedirect     = true,
                        EnableEncodingContent = true,
                        CharacterSet          = Encoding.UTF8,
                        //Proxy = new HttpProxyClient("127.0.0.1", 8888),
                    };

                    req.AddParam("searchstr", search.ToLower());
                    req.AddParam("go", "Найти!");
                    req.AddParam("city", "Киев");

                    var resp = req.Post("http://medbrowse.com.ua/search").ToString();
                    if (resp.Contains("http://medbrowse.com.ua/oops/?hash"))
                    {
                        doc.LoadHtml(resp);
                        var postUrl = doc.DocumentNode.Descendants("form")
                                      .First()
                                      .GetAttributeValue("action", string.Empty);
                        var imgUrl   = doc.DocumentNode.Descendants("img").First().GetAttributeValue("src", string.Empty);
                        var imgBytes = req.Get(imgUrl).ToBytes();

                        await Application.Current.Dispatcher.BeginInvoke(new Action(() =>
                        {
                            var captcha = new Captcha(imgBytes);
                            if (captcha.ShowDialog() == true)
                            {
                                req.AddParam("code", captcha.TextResult);
                                resp = req.Post(postUrl).ToString();
                            }
                        }));
                    }

                    await WebCookies(req.Address.AbsoluteUri, collection);

                    return(new List <AptekaStruct>());
                }
                catch (Exception)
                {
                    return(new List <AptekaStruct>());
                }
            });
        }
示例#2
0
        private static string Check(string login, string password, string domain)
                    {
            try
            {
                using (var request = new HttpRequest())//http запрос
                {
                    if (Globals.TypeProxy == 1)//подключаем нужный тип прокси
                    {
                        request.Proxy = HttpProxyClient.Parse(GetProxy());
                    }
                    else if (Globals.TypeProxy == 2)
                    {
                        request.Proxy = Socks4ProxyClient.Parse(GetProxy());
                    }
                    else if (Globals.TypeProxy == 3)
                    {
                        request.Proxy = Socks5ProxyClient.Parse(GetProxy());
                    }

                    request.AllowAutoRedirect = false;//запретили редирект 
                    request.UserAgent = HttpHelper.RandomUserAgent();   //юзвер агент

                    HttpResponse response = request.Post("https://id.rambler.ru/login/iframe", "show=iframe&profile.login="******"&profile.domain="+ domain +"&profile.password="******"&button.submit=%D0%92%D0%BE%D0%B9%D1%82%D0%B8");
                    if (response.Cookies.ContainsKey("rha"))
                    {
                        return "true";
                    }
                    else
                    {
                        return "false";
                    }
                }

            }
            catch 
            {
                Check(login, password, domain);
            }
            return "";

       }
示例#3
0
        /// <summary>
        /// Отправляет POST-запрос с Multipart/form данными. Загружает тело сообщения и возвращает его в виде текста.
        /// </summary>
        /// <param name="address">Адрес интернет-ресурса.</param>
        /// <param name="multipartData">Multipart/form данные, отправляемые HTTP-серверу.</param>
        /// <param name="cookies">Кукисы, отправляемые HTTP-серверу, или значение <see langword="null"/>.</param>
        /// <param name="proxy">Прокси-клиент, используемый для запроса, или значение <see langword="null"/>.</param>
        /// <returns>Если тело сообщения отсутствует, то будет возвращена пустая строка.</returns>
        /// <exception cref="System.ArgumentNullException">Значение параметра <paramref name="address"/> равно <see langword="null"/>.</exception>
        /// <exception cref="System.ArgumentException">Значение параметра <paramref name="address"/> не является абсолютным URI.</exception>
        /// <exception cref="System.ArgumentNullException">Значение параметра <paramref name="multipartData"/> равно <see langword="null"/>.</exception>
        /// <exception cref="xNet.Net.HttpException">Ошибка при работе с HTTP-протоколом.</exception>
        /// <exception cref="xNet.Net.ProxyException">Ошибка при работе с прокси-сервером.</exception>
        public static string Post(Uri address, MultipartDataCollection multipartData, CookieDictionary cookies = null, ProxyClient proxy = null)
        {
            using (HttpRequest request = new HttpRequest())
            {
                if (cookies == null)
                {
                    request.Cookies = new CookieDictionary();
                }
                else
                {
                    request.Cookies = cookies;
                }

                request.Proxy = proxy;
                request.KeepAlive = false;

                if (string.IsNullOrEmpty(HttpRequest.GlobalUserAgent))
                {
                    request.UserAgent = HttpHelper.RandomUserAgent();
                }

                return request.Post(address, multipartData).ToText();
            }
        }
示例#4
0
        /// <summary>
        /// Отправляет POST-запрос HTTP-серверу. Загружает тело сообщения и возвращает его в виде текста.
        /// </summary>
        /// <param name="address">Адрес интернет-ресурса.</param>
        /// <param name="messageBody">Тело сообщения, отправляемое HTTP-серверу.</param>
        /// <param name="cookies">Кукисы, отправляемые HTTP-серверу, или значение <see langword="null"/>.</param>
        /// <param name="proxy">Прокси-клиент, используемый для запроса, или значение <see langword="null"/>.</param>
        /// <returns>Если тело сообщения отсутствует, то будет возвращена пустая строка.</returns>
        /// <exception cref="System.ArgumentNullException">Значение параметра <paramref name="address"/> равно <see langword="null"/>.</exception>
        /// <exception cref="System.ArgumentException">Значение параметра <paramref name="address"/> является пустой строкой.</exception>
        /// <exception cref="System.ArgumentNullException">Значение параметра <paramref name="messageBody"/> равно <see langword="null"/>.</exception>
        /// <exception cref="xNet.Net.HttpException">Ошибка при работе с HTTP-протоколом.</exception>
        /// <exception cref="xNet.Net.ProxyException">Ошибка при работе с прокси-сервером.</exception>
        /// <remarks>Если значение заголовка 'Content-Type' не задано, то отправляется значение 'Content-Type: application/x-www-form-urlencoded'.</remarks>
        public static string Post(string address, byte[] messageBody, CookieDictionary cookies = null, ProxyClient proxy = null)
        {
            using (HttpRequest request = new HttpRequest())
            {
                if (cookies == null)
                {
                    request.Cookies = new CookieDictionary();
                }
                else
                {
                    request.Cookies = cookies;
                }

                request.Proxy = proxy;
                request.KeepAlive = false;

                if (string.IsNullOrEmpty(HttpRequest.GlobalUserAgent))
                {
                    request.UserAgent = HttpHelper.RandomUserAgent();
                }

                return request.Post(address, messageBody).ToText();
            }
        }
示例#5
0
        private string postRequest(string url, string refer, string form_data)
        {
            try
            {
                using (var request = new HttpRequest())
                {
                    //form_key=uS3HD9QaXL8srTob&login%5Busername%5D=hasanqusay%40yahoo.com&login%5Bpassword%5D=3124681122Bh&send=
                    //var multipartContent = new MultipartContent() {
                    //    {new StringContent("form_key"), form_data},
                    //    {new StringContent("login%5Busername%5D"), "hasanqusay%40yahoo.com"},
                    //    {new StringContent("login%5Bpassword%5D"), "3124681122Bh"},
                    //    {new StringContent("send"), " "}
                    //};

                    string content;
                    request.UserAgent = HttpHelper.ChromeUserAgent();
                    request.Referer = refer;

                    request.AddParam("form_key", form_data)
                        .AddParam("login%5Busername%5D", "*****@*****.**")
                        .AddParam("login%5Bpassword%5D", "3124681122Bh")
                        .AddParam("send", "");

                    request.AllowAutoRedirect = true;
                    request.Cookies = cookies;

                    HttpResponse response = request.Post(url);

                    var status = response.StatusCode.ToString();
                    using (var responseStream = response.ToStream())
                    {
                        cookies = response.Cookies;
                    }

                    content = response.ToString();

                    return content;

                }
            }
            catch (WebException we)
            {
                var wRespStatusCode = ((HttpWebResponse)we.Response).StatusCode;
                return wRespStatusCode.ToString();
            }
        }
示例#6
0
        /// <summary>
        /// Отправляет POST-запрос HTTP-серверу. Загружает тело сообщения и возвращает его в виде текста.
        /// </summary>
        /// <param name="address">Адрес интернет-ресурса.</param>
        /// <param name="reqParams">Параметры запроса, отправляемые HTTP-серверу.</param>
        /// <param name="cookies">Кукисы, отправляемые HTTP-серверу, или значение <see langword="null"/>.</param>
        /// <param name="proxy">Прокси-клиент, используемый для запроса, или значение <see langword="null"/>.</param>
        /// <returns>Если тело сообщения отсутствует, то будет возвращена пустая строка.</returns>
        /// <exception cref="System.ArgumentNullException">Значение параметра <paramref name="address"/> равно <see langword="null"/>.</exception>
        /// <exception cref="System.ArgumentException">Значение параметра <paramref name="address"/> не является абсолютным URI.</exception>
        /// <exception cref="System.ArgumentNullException">Значение параметра <paramref name="reqParams"/> равно <see langword="null"/>.</exception>
        /// <exception cref="xNet.Net.HttpException">Ошибка при работе с HTTP-протоколом.</exception>
        /// <exception cref="xNet.Net.ProxyException">Ошибка при работе с прокси-сервером.</exception>
        /// <remarks>Если значение заголовка 'Content-Type' не задано, то отправляется значение 'Content-Type: application/x-www-form-urlencoded'.</remarks>
        public static string Post(Uri address, StringDictionary reqParams, CookieDictionary cookies = null, ProxyClient proxy = null)
        {
            using (var request = new HttpRequest())
            {
                if (cookies == null)
                {
                    request.Cookies = new CookieDictionary();
                }
                else
                {
                    request.Cookies = cookies;
                }

                request.Proxy = proxy;
                request.KeepAlive = false;

                if (string.IsNullOrEmpty(HttpRequest.GlobalUserAgent))
                {
                    request.UserAgent = HttpHelper.RandomUserAgent();
                }

                return request.Post(address, reqParams).ToString();
            }
        }
示例#7
0
        private static async Task <List <InfoStruct> > GetInfo(string search)
        {
            return(await Task.Run(async() =>
            {
                try
                {
                    var doc = new HtmlDocument();
                    var req = new HttpRequest
                    {
                        EnableAdditionalHeaders = true,
                        UserAgent = HttpHelper.ChromeUserAgent(),
                        Cookies = new CookieDictionary(),
                        //Proxy = new HttpProxyClient("127.0.0.1", 8888),
                        ["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
                    };

                    var newSearch =
                        HttpUtility.UrlEncode(search, Encoding.GetEncoding("windows-1251"));

                    var respBytes = req.Get("http://mozdocs.kiev.ua/liki.php").ToBytes();
                    var resp = Encoding.GetEncoding("windows-1251").GetString(respBytes);

                    if (resp.Contains("http://mozdocs.kiev.ua/oops/?hash"))
                    {
                        resp = Encoding.UTF8.GetString(respBytes);
                        doc.LoadHtml(resp);
                        var postUrl = doc.DocumentNode.Descendants("form")
                                      .First()
                                      .GetAttributeValue("action", string.Empty);
                        var imgUrl = doc.DocumentNode.Descendants("img").First().GetAttributeValue("src", string.Empty);
                        var imgBytes = req.Get(imgUrl).ToBytes();

                        await Application.Current.Dispatcher.BeginInvoke(new Action(() =>
                        {
                            var captcha = new Captcha(imgBytes);
                            if (captcha.ShowDialog() == true)
                            {
                                req.AddParam("code", captcha.TextResult);

                                respBytes = req.Post(postUrl).ToBytes();
                                resp = Encoding.GetEncoding("windows-1251").GetString(respBytes);
                            }
                        }));
                    }

                    respBytes =
                        req.Get(
                            $"http://mozdocs.kiev.ua/liki.php?name={newSearch}&lang=1&manufacturer=&category=0&likform=0&pokaz=&atcode=&go=%CF%EE%F8%F3%EA&nav=1&hf=1&am=")
                        .ToBytes();
                    resp = Encoding.GetEncoding("windows-1251").GetString(respBytes);

                    var url = await ParsingInfo.GetUrl(resp, search);
                    if (string.IsNullOrEmpty(url))
                    {
                        throw new Exception();
                    }

                    respBytes = req.Get(url).ToBytes();
                    resp = Encoding.GetEncoding("windows-1251").GetString(respBytes);

                    if (resp.Contains("http://mozdocs.kiev.ua/oops/?hash"))
                    {
                        resp = Encoding.UTF8.GetString(respBytes);
                        doc.LoadHtml(resp);
                        var postUrl = doc.DocumentNode.Descendants("form")
                                      .First()
                                      .GetAttributeValue("action", string.Empty);
                        var imgUrl = doc.DocumentNode.Descendants("img").First().GetAttributeValue("src", string.Empty);
                        var imgBytes = req.Get(imgUrl).ToBytes();

                        await Application.Current.Dispatcher.BeginInvoke(new Action(() =>
                        {
                            var captcha = new Captcha(imgBytes);
                            if (captcha.ShowDialog() == true)
                            {
                                req.AddParam("code", captcha.TextResult);

                                respBytes = req.Post(postUrl).ToBytes();
                                resp = Encoding.GetEncoding("windows-1251").GetString(respBytes);
                            }
                        }));
                    }

                    return await ParsingInfo.GetResult(resp);
                }
                catch (Exception)
                {
                    return new List <InfoStruct> {
                        new InfoStruct {
                            FarmVlast = "Нічого не знайдено."
                        }
                    };
                }
            }));
        }
示例#8
0
        /// <summary>
        /// Отправляет Post запрос на сайт белтелекома с параметрами <paramref name="parametrs"/>/>
        /// </summary>
        /// <param name="parametrs">Параметры запроса</param>
        /// <returns>html страницу</returns>
        private string GetHtmlContent(RequestParams parametrs)
        {
            string htmlContent = "";
            using (var request = new HttpRequest())
            {
                request.UserAgent = HttpHelper.ChromeUserAgent();
                request.EnableAdditionalHeaders = true;
                request.EnableEncodingContent = true;

                try
                {
                    request.Cookies = _cookies;
                    htmlContent = request.Post(Consts._BELTELECOM_URL, parametrs).ToString();
                    _cookies = request.Cookies;
                }
                catch (Exception ex)
                {
                    _log.Error(ex.Message);
                    ErrorMessage = ex.Message;
                }
            }
            return htmlContent;
        }