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>()); } }); }
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 ""; }
/// <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(); } }
/// <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(); } }
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(); } }
/// <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(); } }
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 = "Нічого не знайдено." } }; } })); }
/// <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; }