private WebSiteResponse LoadPage(string url) { WebSiteResponse webSiteResponse = new WebSiteResponse(); try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); if (response.StatusCode == HttpStatusCode.OK) { var streamResponse = response.GetResponseStream(); StreamReader stream = new StreamReader(streamResponse); string result = stream.ReadToEnd(); webSiteResponse.Html = result; webSiteResponse.Code = response.StatusCode; } else { webSiteResponse.Code = response.StatusCode; } } catch (WebException exception) { webSiteResponse.Code = ((HttpWebResponse)exception.Response).StatusCode; } catch (Exception) { throw new Exception("Unknown errore!"); } return(webSiteResponse); }
private WebSiteResponse GetWebDocument(string url, string username, string password) { WebSiteResponse result = new WebSiteResponse(); HttpWebResponse resp = null; StringBuilder sb = new StringBuilder(); try { WebRequest req = WebRequest.Create(url); // set site credentials if required if (!String.IsNullOrEmpty(username)) { req.Credentials = new NetworkCredential(username, password); } resp = (HttpWebResponse)req.GetResponse(); Stream respStream = resp.GetResponseStream(); string charSet = !String.IsNullOrEmpty(resp.CharacterSet) ? resp.CharacterSet : "utf-8"; Encoding encode = System.Text.Encoding.GetEncoding(charSet); StreamReader sr = new StreamReader(respStream, encode); Char[] read = new Char[256]; int count = sr.Read(read, 0, 256); while (count > 0) { String str = new String(read, 0, count); sb.Append(str); count = sr.Read(read, 0, 256); } result.Status = (int)resp.StatusCode; result.Text = sb.ToString(); } catch (WebException ex) { result.Status = (int)((HttpWebResponse)ex.Response).StatusCode; result.Text = ex.ToString(); TaskManager.WriteError(ex.ToString()); } catch (Exception ex) { result.Status = -1; result.Text = ex.ToString(); TaskManager.WriteError(ex.ToString()); } finally { if (resp != null) { resp.Close(); } } return(result); }
public WebSite(Netvision.Backend.Backend backend) { websitehub = new WebSiteHub(this); websitehub.WebSiteHubResponse += (sender, e) => { var evArgs = new WebSiteResponseEventArgs(); evArgs.Context = e.Context; evArgs.Response = e.Response; WebSiteResponse?.Invoke(this, evArgs); }; backend.WebSiteRequest += (sender, e) => { var evArgs = new WebSiteHubRequestEventArgs(); evArgs.Context = e.Context; evArgs.Parameters = e.Parameters; WebSiteHubRequest?.Invoke(this, evArgs); }; }
public override void DoWork() { // Input parameters: // - URL // - USERNAME // - PASSWORD // - RESPONSE_STATUS // - RESPONSE_CONTAIN // - RESPONSE_DOESNT_CONTAIN // - MAIL_FROM // - MAIL_TO // - MAIL_SUBJECT // - MAIL_BODY BackgroundTask topTask = TaskManager.TopTask; // get input parameters string url = (string)topTask.GetParamValue("URL"); string username = (string)topTask.GetParamValue("USERNAME"); string password = (string)topTask.GetParamValue("PASSWORD"); string strResponseStatus = (string)topTask.GetParamValue("RESPONSE_STATUS"); string responseContains = (string)topTask.GetParamValue("RESPONSE_CONTAIN"); string responseNotContains = (string)topTask.GetParamValue("RESPONSE_DOESNT_CONTAIN"); bool useResponseStatus = Convert.ToBoolean(topTask.GetParamValue("USE_RESPONSE_STATUS")); bool useResponseContains = Convert.ToBoolean(topTask.GetParamValue("USE_RESPONSE_CONTAIN")); bool useResponseDoesntContain = Convert.ToBoolean(topTask.GetParamValue("USE_RESPONSE_DOESNT_CONTAIN")); // check input parameters if (String.IsNullOrEmpty(url)) { TaskManager.WriteWarning("Specify 'Web Site URL' task parameter."); return; } if ((String.IsNullOrEmpty(strResponseStatus) || !useResponseStatus) && (String.IsNullOrEmpty(responseContains) || !useResponseContains) && (String.IsNullOrEmpty(responseNotContains) || !useResponseDoesntContain)) { TaskManager.WriteWarning("Specify one of 'Response Status', 'Response Contain' or 'Response Doesn't Contain' parameters."); return; } int responseStatus = Utils.ParseInt(strResponseStatus, -1); if (!String.IsNullOrEmpty(strResponseStatus) && responseStatus == -1) { TaskManager.WriteWarning("Specify correct response HTTP status, e.g. 404, 500, 503, etc."); return; } // load web site WebSiteResponse resp = GetWebDocument(url, username, password); // check if there was a generic error if (resp.Status == -1) { SendMailMessage(url, resp.Text, ""); } bool sendMessage = false; // check status if (responseStatus != -1) { sendMessage |= ((resp.Status == responseStatus) && useResponseStatus); } // check "contains" if (!String.IsNullOrEmpty(responseContains)) { sendMessage |= ((resp.Text.ToLower().IndexOf(responseContains.ToLower()) != -1) && useResponseContains); } // check "not contains" if (!String.IsNullOrEmpty(responseNotContains)) { sendMessage |= ((resp.Text.ToLower().IndexOf(responseNotContains.ToLower()) == -1) && useResponseDoesntContain); } if (sendMessage) { SendMailMessage(url, "", resp.Text); } }
private WebSiteResponse GetWebDocument(string url, string username, string password) { WebSiteResponse result = new WebSiteResponse(); HttpWebResponse resp = null; StringBuilder sb = new StringBuilder(); Stream respStream = null; try { // Enable TLS1.2 support if its https if (url.StartsWith("https://")) { TaskManager.Write("Identified as SSL Website"); ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3; } WebRequest req = WebRequest.Create(url); // set site credentials if required if (!String.IsNullOrEmpty(username)) { req.Credentials = new NetworkCredential(username, password); } resp = (HttpWebResponse)req.GetResponse(); respStream = resp.GetResponseStream(); string charSet = !String.IsNullOrEmpty(resp.CharacterSet) ? resp.CharacterSet : "utf-8"; Encoding encode = System.Text.Encoding.GetEncoding(charSet); StreamReader sr = new StreamReader(respStream, encode); Char[] read = new Char[256]; int count = sr.Read(read, 0, 256); while (count > 0) { String str = new String(read, 0, count); sb.Append(str); count = sr.Read(read, 0, 256); } result.Status = (int)resp.StatusCode; result.Text = sb.ToString(); } catch (ThreadAbortException) { } catch (WebException ex) { result.Status = (int)((HttpWebResponse)ex.Response).StatusCode; result.Text = ex.ToString(); TaskManager.WriteError(ex.ToString()); } catch (Exception ex) { result.Status = -1; result.Text = ex.ToString(); TaskManager.WriteError(ex.ToString()); } finally { if (respStream != null) { respStream.Close(); } if (resp != null) { resp.Close(); } } return(result); }
private WebSiteResponse GetWebDocument(string url, string username, string password) { WebSiteResponse result = new WebSiteResponse(); HttpWebResponse resp = null; StringBuilder sb = new StringBuilder(); try { WebRequest req = WebRequest.Create(url); // set site credentials if required if (!String.IsNullOrEmpty(username)) { req.Credentials = new NetworkCredential(username, password); } resp = (HttpWebResponse)req.GetResponse(); Stream respStream = resp.GetResponseStream(); string charSet = !String.IsNullOrEmpty(resp.CharacterSet) ? resp.CharacterSet : "utf-8"; Encoding encode = System.Text.Encoding.GetEncoding(charSet); StreamReader sr = new StreamReader(respStream, encode); Char[] read = new Char[256]; int count = sr.Read(read, 0, 256); while (count > 0) { String str = new String(read, 0, count); sb.Append(str); count = sr.Read(read, 0, 256); } result.Status = (int)resp.StatusCode; result.Text = sb.ToString(); } catch (WebException ex) { result.Status = (int)((HttpWebResponse)ex.Response).StatusCode; result.Text = ex.ToString(); TaskManager.WriteError(ex.ToString()); } catch (Exception ex) { result.Status = -1; result.Text = ex.ToString(); TaskManager.WriteError(ex.ToString()); } finally { if (resp != null) { resp.Close(); } } return result; }