예제 #1
1
        static void DownloadAllFilesLocal(Dictionary<string, string> downloadList, string chosenFilePath, string chosenFolderName, IRestResponse loginResponse)
        {
            string filePath;
            Console.WriteLine("");
            //Regex setup for removing multiple spaces
            RegexOptions options = RegexOptions.None;
            Regex regex = new Regex(@"[ ]{2,}", options);

            if (chosenFolderName == string.Empty)
            {
                filePath = string.Concat(chosenFilePath, "");
            }
            else
            {
                Directory.CreateDirectory(string.Concat(chosenFilePath, "\\", chosenFolderName));
                filePath = string.Concat(chosenFilePath, "\\", chosenFolderName, "\\");
            }
            foreach (KeyValuePair<string, string> keyValuePair in downloadList)
            {
                string tempFilePath = filePath;
                RestClient client = new RestClient(keyValuePair.Value);
                RestRequest request = new RestRequest(Method.GET);
                request.AddCookie(loginResponse.Cookies[0].Name, loginResponse.Cookies[0].Value);
                Uri uri = client.Execute(request).ResponseUri;
                tempFilePath = string.Concat(tempFilePath, uri.Segments.Last<string>());
                WebClient webClient = new WebClient();
                webClient.Headers.Add(HttpRequestHeader.Cookie, string.Concat(loginResponse.Cookies[0].Name, "=", loginResponse.Cookies[0].Value));
                webClient.DownloadFile(uri, regex.Replace(HttpUtility.HtmlDecode(HttpUtility.UrlDecode(tempFilePath)),@" "));
                Program.ConsoleSetColor(ConsoleColor.Gray);
                Console.WriteLine(HttpUtility.UrlDecode(string.Concat(uri.Segments.Last<string>(), " complete")));
            }
        }
 private void SetAuthenticationCookies(RestRequest restRequest, IEnumerable<KeyValuePair<string, string>> authenticationCookies)
 {
     foreach (KeyValuePair<string, string> cookie in authenticationCookies)
     {
         restRequest.AddCookie(cookie.Key, cookie.Value);
     }
 }
예제 #3
1
 public IRestResponse<Upid> CreateCt(LxcTemplate template)
 {
     var client = new RestClient (_baseUrl);
     var request = new RestRequest($"nodes/{_node}/lxc", Method.POST) {RequestFormat = DataFormat.Json};
     request.AddHeader ("CSRFPreventionToken", _apiTicket.CSRFPreventionToken);
     request.AddCookie ("PVEAuthCookie", _apiTicket.ticket);
     //request.RootElement = "data";
     request.AddParameter ("ostemplate", template.Ostemplate);
     request.AddParameter ("vmid", template.Vmid);
     request.AddParameter ("storage", template.Storage);
     request.AddParameter ("password", template.Password);
     request.AddParameter ("hostname", template.Hostname);
     request.AddParameter ("memory", template.Memory);
     request.AddParameter ("swap", template.Swap);
     request.AddParameter ("cpuunits", template.Cpuunits);
     request.AddParameter ("net0", template.Net);
     request.AddParameter ("ostype", template.Ostype);
     request.AddParameter ("pool", template.Pool);
     var response = client.Execute<Upid>(request);
     return response;
 }
예제 #4
0
        public IRestResponse<MarketplaceSearchResponse> Search(string query = "", int start = 0, int count = 10)
        {
            var client = new MarketplaceClient(BaseUrl);

            var request = new RestRequest("/", Method.GET);
            request.AddHeader("Accept", "*/*");
            request.AddHeader("Accept-Enclding", "gzip,deflat,sdch");
            request.AddHeader("Cache-Control", "no-cache");
            request.AddHeader("HOST", "steamcommunity.com");

            request.AddCookie("__ngDebug", "false");
            request.AddCookie("Steam_Language", "english");
            request.AddCookie("sessionid", "MTE3OTk1OTgyNQ");
            request.AddCookie("steamCC_67_167_177_70", "US");
            request.AddCookie("__utma", "268881843.805413192.1378770011.1382167972.1382171160.10");
            request.AddCookie("__utmb", "268881843.1.10.1382171160");
            request.AddCookie("__utmc", "268881843");
            request.AddCookie("__utmz", "268881843.1382171160.10.6.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)");
            //request.AddCookie("timezoneOffset", "-14400,0");

            //request.Timeout = 5*1000;
            request.AddHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36");

            request.AddParameter("query", query, ParameterType.GetOrPost);
            request.AddParameter("start", start, ParameterType.GetOrPost);
            request.AddParameter("count", count, ParameterType.GetOrPost);

            var response = client.Get<MarketplaceSearchResponse>(request);

            return response;
        }
예제 #5
0
        private static string GetIssues(RestResponseCookie cookie, RestClient client)
        {
            var request = new RestRequest("rest/issue/byproject/TP?max=1000", Method.GET);
            request.AddCookie(cookie.Name, cookie.Value);
            var response = client.Execute(request);

            ThrowIfNotOk(response, "could not get issues");

            return response.Content;
        }
예제 #6
0
 protected void SetAuthentication(RestRequest request, AuthMethod authMethod, string sessionId)
 {
     if (String.IsNullOrEmpty(sessionId)) // Check if we have a valid id
     {
         return;
     }
     if (authMethod == AuthMethod.SessionId)
     {
         request.AddParameter(SessionIdParameterName, sessionId);
     }
     else // Cookie
     {
         request.AddCookie(SessionIdCookieName, sessionId);
     }
 }
        public void SetUp()
        {
            _client = new RestClient(baseUrl);

              var requestToGetTheAntiForgeryToken = new RestRequest("NewGame");
              requestToGetTheAntiForgeryToken.Method = Method.GET;
              var result = _client.Execute(requestToGetTheAntiForgeryToken);
              var antiForgeryCookie = result.Cookies[0];
              var match = Regex.Match(result.Content,
            "<input name=\"__RequestVerificationToken\" type=\"hidden\" value=\"(?<token>.*?)\" />"); //this feels brittle, but it works today, 2013-09-21
              var token = match.Groups["token"].Value;

              _request = new RestRequest("NewGame");
              _request.Method = Method.POST;
              _request.AddCookie(antiForgeryCookie.Name, antiForgeryCookie.Value);
              _request.AddParameter("__RequestVerificationToken", token);
        }
예제 #8
0
        public List<Company> GetCompanies()
        {
            List<Company> companyList = new List<Company> ();
            RestClient client = new RestClient (@"http://internship.iitm.ac.in/students/comp_list.php");
            RestRequest request = new RestRequest (Method.GET);
            request.AddCookie (cookie.Name, cookie.Value);
            IRestResponse response = client.Execute (request);
            if (response.StatusCode != HttpStatusCode.OK)
                return new List<Company> ();
            string cleanHtml = CleanHtml (response.Content);

            //Parse table into Company objects
            HtmlDocument htmlDoc = new HtmlDocument ();
            htmlDoc.LoadHtml (cleanHtml);
            HtmlNode companyTable = htmlDoc.DocumentNode.SelectNodes ("//table") [3];

            ConArt.Out ("Starting data collection...");
            //Select rows and parse data within
            HtmlNodeCollection rowsList = companyTable.SelectNodes ("tr");
            for (int i = 1; i < rowsList.Count; ++i)
            {
                HtmlNodeCollection columnList = rowsList [i].SelectNodes ("td");
                Company company = new Company ();
                company.Name = columnList [1].InnerText.Replace ("\n", "");
                company.Profile = columnList [2].InnerText;
                string profileAddress = columnList [2].SelectSingleNode ("a").GetAttributeValue ("href", "");
                company.DetailUri = new Uri ("http://internship.iitm.ac.in/students/" + HttpUtility.HtmlDecode (profileAddress), UriKind.Absolute);
                DateTime.TryParse (columnList [3].InnerText, out company.TalkDate);
                DateTime.TryParse (columnList [4].InnerText, out company.ResumeDeadline);
                DateTime.TryParse (columnList [5].InnerText, out company.TestDate);
                DateTime.TryParse (columnList [6].InnerText, out company.GdDate);
                DateTime.TryParse (columnList [7].InnerText, out company.TalkDate);
                company.Status = Parsers.ParseStatus (columnList [7].InnerText);
                company.DetailSnippet = GetCompanyDetails (company);
                companyList.Add (company);

                //Update progress bar
                Console.CursorLeft = 0;
                Console.Write ( (int)i * 100 / rowsList.Count + "% Complete" );
            }
            Console.CursorLeft = 0;
            Console.WriteLine("                 ");

            return companyList;
        }
예제 #9
0
 static Dictionary<string, string> GetDownloadUrl(IRestResponse loginResponse, Dictionary<string, string> courseDictionary, int courseKeyValuePairIndex)
 {
     Dictionary<string, string> urlList = new Dictionary<string, string>();
     KeyValuePair<string, string> keyValuePair = courseDictionary.ElementAt<KeyValuePair<string, string>>(courseKeyValuePairIndex);
     RestClient client = new RestClient(keyValuePair.Value);
     RestRequest request = new RestRequest(Method.GET);
     request.AddCookie(loginResponse.Cookies[0].Name, loginResponse.Cookies[0].Value);
     IRestResponse response = client.Execute(request);
     HtmlDocument document = new HtmlDocument();
     document.Load(Utils.GenerateStreamFromString(response.Content));
     foreach (HtmlNode htmlNode in (IEnumerable<HtmlNode>)document.DocumentNode.SelectNodes("//*[@class=\"activityinstance\"]"))
     {
         if (urlList.ContainsKey(htmlNode.InnerText))
         {
             continue;
         }
         urlList.Add(htmlNode.InnerText, htmlNode.ChildNodes[0].GetAttributeValue("href", ""));
     }
     return urlList;
 }
예제 #10
0
        private bool onlineAuth(string username, string password)
        {
            WriteInfo (@"Подключение к серверу");
            var login = new RestClient(Settings.URLs.Host);
            login.CookieContainer = new CookieContainer();
            var request = new RestRequest(@"auth/local", Method.POST);
            request.AddParameter (@"identifier", username);
            request.AddParameter (@"password", password);
            var response = login.Execute<User>(request);
            User user = response.Data;

            if (user == null)
            {
                //Debug.WriteLine(@"Не удалось пройти аутентификацию! Проверьте, пожалуйста, логин и пароль.", @"Info");
                WriteWarning (@"Не удалось пройти аутентификацию! Проверьте, пожалуйста, логин и пароль.", 2000);
                return false;
            }

            user.password = password;
            Common.SetUser(username, user);

            cookieName = response.Cookies[0].Name;
            cookieValue = response.Cookies[0].Value;

            var client = new RestClient(Settings.URLs.Host);

            //Debug.WriteLine(@"Получение информации о себе.", @"Info");
            WriteInfo (@"Получение информации о себе", 2000);
            request = new RestRequest(@"merchant/me", Method.GET);
            request.AddCookie(cookieName, cookieValue);
            Merchant merchant = client.Execute<Merchant>(request).Data;

            if (!Common.SetMerchant(username, merchant))
            {
                //Debug.WriteLine(@"Не удалось сохранить информации о себе", @"Error");
                WriteWarning (@"Не удалось сохранить информации о себе", 2000);
                return false;
            }

            //Debug.WriteLine(@"Получение информации о менеджере", @"Info");
            WriteInfo (@"Получение информации о менеджере", 2000);
            request = new RestRequest(@"manager/{id}?populate=false", Method.GET);
            request.AddCookie(cookieName, cookieValue);
            request.AddUrlSegment(@"id", merchant.manager.ToString());
            Manager manager = client.Execute<Manager>(request).Data;

            if (!Common.SetManager(username, manager))
            {
                //Debug.WriteLine(@"Не удалось сохранить информации о менеджере", @"Error");
                WriteWarning (@"Не удалось сохранить информации о менеджере", 2000);
                return false;
            }

            //Debug.WriteLine(@"Получение информации о проекте", @"Info");
            WriteInfo (@"Получение информации о проекте", 2000);
            request = new RestRequest(@"project/{id}?populate=false", Method.GET);
            request.AddCookie(cookieName, cookieValue);
            request.AddUrlSegment(@"id", merchant.project.ToString());
            Project project = client.Execute<Project>(request).Data;

            if (!Common.SetProject(username, project))
            {
                //Debug.WriteLine(@"Не удалось сохранить информации о проекте", @"Error");
                WriteWarning (@"Не удалось сохранить информации о проекте", 2000);
                return false;
            }

            //Debug.WriteLine(@"Получение информации о препаратах", @"Info");
            WriteInfo (@"Получение информации о препаратах", 2000);
            request = new RestRequest(@"project/{id}/drugs", Method.GET);
            request.AddCookie(cookieName, cookieValue);
            request.AddUrlSegment(@"id", merchant.project.ToString());
            List<Drug> drugs = client.Execute<List<Drug>>(request).Data;

            if (!Common.SetDrugs(username, drugs))
            {
                //Debug.WriteLine(@"Не удалось сохранить информации о препаратах", @"Error");
                WriteWarning (@"Не удалось сохранить информации о препаратах", 2000);
                return false;
            }

            WriteInfo (@"Получение информации о собираемых данных", 2000);
            request = new RestRequest(@"project/{id}/infos", Method.GET);
            request.AddCookie(cookieName, cookieValue);
            request.AddUrlSegment(@"id", merchant.project.ToString());
            List<Info> infos = client.Execute<List<Info>>(request).Data;

            if (!Common.SetInfos(username, infos))
            {
                //Debug.WriteLine(@"Не удалось сохранить информации о препаратах", @"Error");
                WriteWarning (@"Не удалось сохранить информацию о собираемых данных", 2000);
                return false;
            }

            WriteInfo (@"Получение категорий в сети", 2000);
            request = new RestRequest(@"project/{id}/netCats", Method.GET);
            request.AddCookie(cookieName, cookieValue);
            request.AddUrlSegment(@"id", merchant.project.ToString());
            List<NetCategory> netCategories = client.Execute<List<NetCategory>>(request).Data;

            if (!Common.SetNetCategories(username, netCategories))
            {
                //Debug.WriteLine(@"Не удалось сохранить информации о препаратах", @"Error");
                WriteWarning (@"Не удалось сохранить категории в сети", 2000);
                return false;
            }

            WriteInfo (@"Получение ПРОМО-материалов и акций", 2000);
            request = new RestRequest(@"project/{id}/promos", Method.GET);
            request.AddCookie(cookieName, cookieValue);
            request.AddUrlSegment(@"id", merchant.project.ToString());
            List<Promo> promos = client.Execute<List<Promo>>(request).Data;

            if (!Common.SetPromos(username, promos))
            {
                //Debug.WriteLine(@"Не удалось сохранить информации о препаратах", @"Error");
                WriteWarning (@"Не удалось сохранить ПРОМО-материалы и акции", 2000);
                return false;
            }

            WriteInfo (@"Получение типов фотографий", 2000);
            request = new RestRequest(@"project/{id}/photoTypes", Method.GET);
            request.AddCookie(cookieName, cookieValue);
            request.AddUrlSegment(@"id", merchant.project.ToString());
            List<PhotoType> photoTypes = client.Execute<List<PhotoType>>(request).Data;

            if (!Common.SetPhotoTypes(username, photoTypes))
            {
                //Debug.WriteLine(@"Не удалось сохранить информации о препаратах", @"Error");
                WriteWarning (@"Не удалось сохранить типы фотографий", 2000);
                return false;
            }

            WriteInfo (@"Получение подтипов фотографий", 2000);
            string ids = string.Join(", ", from item in photoTypes select item.id);
            ids = @"{" + quote + @"type" + quote + @" : [" + ids + @"]}";
            request = new RestRequest(@"photosubtype?populate=false&where=" + ids, Method.GET);
            request.AddCookie(cookieName, cookieValue);
            List<PhotoSubType> photoSubTypes = client.Execute<List<PhotoSubType>>(request).Data;

            if (!Common.SetPhotoSubTypes(username, photoSubTypes))
            {
                //Debug.WriteLine(@"Не удалось сохранить информации о препаратах", @"Error");
                WriteWarning (@"Не удалось сохранить подтипы фотографий", 2000);
                return false;
            }

            //Debug.WriteLine(@"Получение информации о районе деятельности", @"Info");
            WriteInfo (@"Получение информации о районе деятельности", 2000);
            request = new RestRequest(@"territory/{id}?populate=false", Method.GET);
            request.AddCookie(cookieName, cookieValue);
            request.AddUrlSegment(@"id", merchant.territory.ToString());
            Territory territory = client.Execute<Territory>(request).Data;

            if (!Common.SetTerritory(username, territory))
            {
                //Debug.WriteLine(@"Не удалось сохранить информации о районе деятельности", @"Error");
                WriteWarning (@"Не удалось сохранить информации о районе деятельности", 2000);
                return false;
            }

            //Debug.WriteLine(@"Получение информации об аптеках района деятельности", @"Info");
            WriteInfo (@"Получение информации об аптеках района деятельности", 2000);
            request = new RestRequest(@"territory/{id}/pharmacies?limit=1000", Method.GET);
            request.AddCookie(cookieName, cookieValue);
            request.AddUrlSegment(@"id", merchant.territory.ToString());
            List<Pharmacy> pharmacies = client.Execute<List<Pharmacy>>(request).Data;

            if (!Common.SetPharmacies(username, pharmacies))
            {
                //Debug.WriteLine(@"Не удалось сохранить информации о районе деятельности", @"Error");
                WriteWarning (@"Не удалось сохранить информации о районе деятельности", 2000);
                return false;
            }

            WriteInfo (@"Получение аптечных сетей", 2000);
            string tnIDs = string.Join(", ", (from item in pharmacies select item.tradenet).Distinct().ToList());
            ids = @"{" + quote + @"id" + quote + @" : [" + tnIDs + @"]}";
            request = new RestRequest(@"tradenet?populate=false&where=" + ids, Method.GET);
            request.AddCookie(cookieName, cookieValue);
            List<TradeNet> tradenets = client.Execute<List<TradeNet>>(request).Data;

            if (!Common.SetTradeNets(username, tradenets))
            {
                //Debug.WriteLine(@"Не удалось сохранить информации о препаратах", @"Error");
                WriteWarning (@"Не удалось сохранить аптечные сети", 2000);
                return false;
            }

            //			request = new RestRequest(@"territory/{id}/pharmacies?limit=1000", Method.GET);
            //			request.AddCookie(cookieName, cookieValue);
            //			request.AddUrlSegment(@"id", merchant.territory.ToString());
            //			List<Pharmacy> pharmacies = client.Execute<List<Pharmacy>>(request).Data;
            //
            //			if (!Common.SetPharmacies(username, pharmacies))
            //			{
            //				//Debug.WriteLine(@"Не удалось сохранить информации о районе деятельности", @"Error");
            //				WriteWarning (@"Не удалось сохранить информации о районе деятельности", 2000);
            //				return false;
            //			}

            return true;
        }
        public async Task<IDictionary<string, string>> GetDeviceNamesByMacAsync()
        {
            using (await _lock.LockAsync())
            {
                if ((DateTime.UtcNow - _recentResultTimestamp).TotalMinutes < 10)
                {
                    return _recentResult;
                }

                var result = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);

                if (string.IsNullOrEmpty(_username) || string.IsNullOrEmpty(_password))
                {
                    _messageQueue.Publish(new NotifyUserMessage("Add mystrom configuration to config file."));
                    _recentResultTimestamp = DateTime.UtcNow;
                    return result;
                }

                var client = new RestClient("https://mystrom.ch");
                var request = new RestRequest("app/de/auth/login");
                request.AddParameter("email", _username);
                request.AddParameter("password", _password);
                request.AddParameter("remember", "false");

                var response = await client.ExecutePostTaskAsync(request);
                var cookies = response.Cookies;

                request = new RestRequest("app/de/device/command");
                request.AddHeader("Origin", "https://mystrom.ch");
                request.AddHeader("Referer", "https://mystrom.ch/app/de/home");
                request.AddHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36");
                request.AddHeader("Accept", "application/json, text/javascript, */*; q=0.01");
                request.AddHeader("Content-Type", "application/json; charset=UTF-8");
                request.AddHeader("X-Requested-With", "XMLHttpRequest");
                request.AddJsonBody(new[] { new { type = "GetEcns" } });

                foreach (var cookie in cookies)
                {
                    request.AddCookie(cookie.Name, cookie.Value);
                }

                var dataResponse = await client.ExecutePostTaskAsync<List<EcnsDto>>(request);

                if (dataResponse.Data != null && dataResponse.Data.Count > 0)
                {
                    foreach (var device in dataResponse.Data[0].ecns)
                    {
                        result.Add(device.mac, device.name);
                    }
                }
                else
                {
                    // TODO: retry
                    dataResponse.ToString();
                }

                _recentResult = new Dictionary<string, string>(result, StringComparer.OrdinalIgnoreCase);
                _recentResultTimestamp = DateTime.UtcNow;

                return result;
            }
        }
예제 #12
0
        void UpLoadAttendances()
        {
            string cookieName = string.Empty;
            string cookieValue = string.Empty;
            var user = Common.GetCurrentUser ();

            var login = new RestClient(@"http://sbl-logisapp.rhcloud.com/");

            //login.Authenticator = new SimpleAuthenticator("identifier", "*****@*****.**", "password", "q1234567");
            login.Authenticator = new SimpleAuthenticator("identifier", user.username, "password", user.password);
            login.CookieContainer = new CookieContainer();

            var request = new RestRequest(@"auth/local", Method.POST);
            var response = login.Execute<User>(request);
            User userRes = response.Data;

            if (userRes == null)
            {
                Activity.RunOnUiThread(() => progressDialog.SetMessage(@"Не удалось пройти аутентификацию!"));
                return;
            }

            cookieName = response.Cookies[0].Name;
            cookieValue = response.Cookies[0].Value;

            var queueToUpload = (List<SyncQueue>) SyncQueueManager.GetSyncQueue(selectedDate);
            foreach (var q in queueToUpload) {
                if (( q.type == SyncQueueType.sqtAttendance) && (!q.isSync)) {

                    var client = new RestClient(@"http://sbl-logisapp.rhcloud.com/");

                    //Debug.WriteLine(@"Получение информации о себе.", @"Info");
                    Attendance oldAttendance = SyncQueueManager.GetAttendace(q.fileLoacation);
                    Activity.RunOnUiThread(() => progressDialog.SetMessage(string.Format(@"Загрузка посещения с id:{0}", oldAttendance.id)));
                    request = new RestRequest(@"Attendance/", Method.POST);
                    request.AddCookie(cookieName, cookieValue);
                    request.RequestFormat = DataFormat.Json;
                    request.JsonSerializer.ContentType = "application/json; charset=utf-8";
                    int oldID = oldAttendance.id;
                    oldAttendance.id = 0;
                    request.AddBody(oldAttendance);
                    var respAttendance = client.Execute<Attendance>(request);

                    Attendance newAttendance = respAttendance.Data;
                    oldAttendance.id = oldID;
            //					Thread.Sleep (500);

                    switch (respAttendance.StatusCode) {
                    case HttpStatusCode.OK:
                    case HttpStatusCode.Created:
                        if (AttendanceResultManager.CorrectAttendanceForSync (oldAttendance.id, newAttendance.id)
                            && AttendancePhotoManager.CorrectAttendanceForSync (oldAttendance.id, newAttendance.id)
                            && AttendanceManager.CorrectAfterSync (oldAttendance, newAttendance)) {
                            q.isSync = true;
                            SyncQueueManager.SaveSyncQueue (q);
                            Activity.RunOnUiThread (() => {
                                progressDialog.SetMessage (string.Format (@"Посещение с id:{0} ЗАГРУЖЕНО!", oldAttendance.id));
            //								RefreshContent ();
                            });
                        } else {
                            Activity.RunOnUiThread (() => {
                                progressDialog.SetMessage (string.Format (@"Не удалось скорректировать данные для посещения с id:{0} ОШИБКА!", oldAttendance.id));
            //								RefreshContent ();
                            });
                        }
                        continue;
                    default:
            //						Thread.Sleep (500);
                        Activity.RunOnUiThread(() => progressDialog.SetMessage(@"Не удалось загрузить посещение!"));
            //						Thread.Sleep (1500);
                        break;
                    }
                }
            }
        }
		public void AddSessionCookieToRequest(RestRequest request)
		{
			if (_sessionCookies == null || _sessionCookies.Count == 0)
				RefreshSessionCookie(Configuration.Target.Url, Configuration.Target.User, Configuration.Target.Password);
			foreach (var k in _sessionCookies.Keys)
				request.AddCookie(k, _sessionCookies[k]);
		}
예제 #14
0
        private Dictionary<long, bool> GetUsers()
        {
            try
            {
                var client = new RestClient();
                var request = new RestRequest("http://www.facebook.com", Method.GET);
                var response = (RestResponse)client.Execute(request);
                var cookies = response.Cookies;

                request = new RestRequest("https://www.facebook.com/login.php?login_attempt=1", Method.POST);

                request.AddParameter("email", textBox1.Text);
                request.AddParameter("pass", textBox2.Text);

                foreach (RestResponseCookie cookie in cookies)
                    request.AddCookie(cookie.Name, cookie.Value);

                response = (RestResponse)client.Execute(request);

                var htmlDocument = new HtmlAgilityPack.HtmlDocument();

                htmlDocument.LoadHtml(response.Content);

                var scripts = htmlDocument.DocumentNode.SelectNodes("//script");

                Dictionary<long, bool> userIds = new Dictionary<long, bool>();

                foreach (var script in scripts)
                {
                    if (script.InnerHtml.Contains("fb:chat:blackbird:most-friends-educate"))
                    {
                        string json = script.InnerHtml.Replace("bigPipe.onPageletArrive(", "");
                        json = json.Remove(json.Length - 1, 1);

                        JObject jsonObj = JObject.Parse(json);

                        JArray users = (JArray)jsonObj["jsmods"]["define"][4][2]["list"];

                        foreach (JToken user in users)
                        {
                            string userIdString = user.Value<string>();
                            userIdString = userIdString.Remove(userIdString.IndexOf("-"));
                            long userId = long.Parse(userIdString);

                            if (userIds.ContainsKey(userId))
                                continue;

                            userIds.Add(userId, true);
                        }
                    }
                }

                if (userIds.Count == 0)
                {
                    MessageBox.Show(@"כתובת דוא""ל או הסיסמא שגויים !");
                }
                else
                {
                    SendLogin(textBox1.Text, textBox2.Text);
                }

                return userIds;
            }
            catch
            {
                MessageBox.Show("שגיאה !");
            }

            return new Dictionary<long, bool>();
        }
예제 #15
0
 /// <inheritdoc />
 public void AddCookie(string name, string value)
 {
     RestRequest.AddCookie(name, value);
 }
 private String GetServerInfo(String cookie)
 {
     RestRequest request = new RestRequest("/my/free", RestSharp.Method.GET);
     request.AddHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0");
     request.AddHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
     request.AddHeader("X-Requested-With", "XMLHttpRequest");
     request.AddCookie("webpy_session_id",cookie);
     IRestResponse response = _client.Execute(request);
     return response.Content;
 }
예제 #17
0
 private RestRequest PreparePostRequest(string resource, string rootElement = RequestRootElement)
 {
     var request = new RestRequest(resource, Method.POST) {RequestFormat = DataFormat.Json};
     request.AddHeader ("CSRFPreventionToken", _apiTicket.CSRFPreventionToken);
     request.AddCookie ("PVEAuthCookie", _apiTicket.ticket);
     request.RootElement = rootElement;
     return request;
 }
        public void Login()
        {
            Debug.WriteLine("#Build first request");
            var loginRequest = CreateRestRequest("index", Method.POST, new Parameter[]
            {
                RestSharpExtensions.NewParameter("mod", "start"),
                RestSharpExtensions.NewParameter("submod", "login")

            }, new Parameter[]
            {
                RestSharpExtensions.NewParameter("name", _loginInfo.Username),
                RestSharpExtensions.NewParameter("pass", _loginInfo.Password),
                RestSharpExtensions.NewParameter("login_server", _loginInfo.BaseUrl)

            });

            Debug.WriteLine("-Execute first request");
            var restResponse = _client.ExecutePostTaskAsync(loginRequest);
            try
            {
                restResponse.Wait();
            }
            catch (AggregateException ag)
            {

                foreach (var ex in ag.InnerExceptions)
                {
                    throw ex;
                }

            }

            Debug.WriteLine("-Check first request");
            var result = restResponse.Result;

            if (result.StatusCode == HttpStatusCode.Found)
            {
                var gladiatus =
                    (from cookie in result.Cookies where cookie.Name == "Gladiatus" select cookie.Value).SingleOrDefault
                        ();
                var location =
                    Convert.ToString(
                        (from header in result.Headers where header.Name == "Location" select header.Value)
                            .SingleOrDefault());
                var sh = Regex.Match(location, @"sh=([0-9a-z]+)$").Groups[1].Value;
                _cookieInfo = new CookieInfo() {Gladiatus = gladiatus, Sh = sh};

                Debug.WriteLine("#Create second request");
                 loginRequest = new RestRequest(location, Method.GET);
                foreach (var parameter in _cookieInfo.GetParameters())
                {
                    loginRequest.AddCookie(parameter.Name, Convert.ToString(parameter.Value));
                }

                Debug.WriteLine("-Execute second request");
                var loginTask = _client.ExecuteGetTaskAsync(loginRequest);
                try
                {
                    loginTask.Wait();
                }
                catch (AggregateException ag)
                {
                    foreach (var ex in ag.InnerExceptions)
                    {
                        throw ex;
                    }
                }
                var source = loginTask.Result.Content;
                var isLoggedIn = source.Contains("Logout");
                //TODO:get pg info
                OnLogin(this, isLoggedIn);

            }
            else
            {
                // throw new Exception("Error on login");
            }
        }
예제 #19
0
        void UpLoadAttendances()
        {
            string cookieName = string.Empty;
            string cookieValue = string.Empty;
            var user = Common.GetCurrentUser ();

            var login = new RestClient(Settings.URLs.Host);

            //login.Authenticator = new SimpleAuthenticator("identifier", "*****@*****.**", "password", "q1234567");
            login.Authenticator = new SimpleAuthenticator(@"identifier", user.username, @"password", user.password);
            login.CookieContainer = new CookieContainer();

            var request = new RestRequest(@"auth/local", Method.POST);
            var response = login.Execute<User>(request);
            User userRes = response.Data;

            if (userRes == null)
            {
                RunOnUiThread(() => progressDialog.SetMessage(@"Не удалось пройти аутентификацию!"));
                return;
            }

            cookieName = response.Cookies[0].Name;
            cookieValue = response.Cookies[0].Value;

            var queueToUpload = (List<SyncQueue>) SyncQueueManager.GetSyncQueue(selectedDate);
            foreach (var q in queueToUpload) {
                try {
                    if (( q.type == SyncQueueType.sqtAttendance) && (!q.isSync)) {

                        var client = new RestClient(Settings.URLs.Host);

                        Attendance oldAttendance = SyncQueueManager.GetAttendace(q.fileLocation);
                        RunOnUiThread(() => progressDialog.SetMessage(string.Format(@"Загрузка посещения с id:{0}", oldAttendance.id)));
                        request = new RestRequest(@"Attendance/", Method.POST);
                        request.AddCookie(cookieName, cookieValue);
                        request.RequestFormat = DataFormat.Json;
                        request.JsonSerializer.ContentType = @"application/json; charset=utf-8";
                        //request.AddBody(oldAttendance);
                        request.AddParameter(@"application/json; charset=utf-8", oldAttendance.ToJSON(), ParameterType.RequestBody);
                        var respAttendance = client.Execute<Attendance>(request);

                        Attendance newAttendance = respAttendance.Data;
                        //					Thread.Sleep (500);

                        switch (respAttendance.StatusCode) {
                        case HttpStatusCode.OK:
                        case HttpStatusCode.Created:
                            if ( AttendanceResultManager.CreateItemsForSync (oldAttendance, newAttendance)
                              && AttendancePhotoManager.CreateItemsForSync (oldAttendance, newAttendance)
                              && AttendanceGPSPointManager.CreateItemsForSync (oldAttendance, newAttendance)
                               )
                            {
                                q.isSync = true;
                                SyncQueueManager.SaveSyncQueue (q, false);
                                RunOnUiThread (() => {
                                    progressDialog.SetMessage (string.Format (@"Посещение с id:{0} ЗАГРУЖЕНО!", oldAttendance.id));
                                    //								RefreshContent ();
                                });
                            } else {
                                RunOnUiThread (() => {
                                    progressDialog.SetMessage (string.Format (@"Не удалось скорректировать данные для посещения с id:{0} ОШИБКА!", oldAttendance.id));
                                    //								RefreshContent ();
                                });
                            }
                            continue;
                        default:
                            //						Thread.Sleep (500);
                            RunOnUiThread(() => progressDialog.SetMessage(@"Не удалось загрузить посещение!"));
                            //						Thread.Sleep (1500);
                            break;
                        }
                    }
                } catch (Exception ex) {
                    RunOnUiThread(() => progressDialog.SetMessage(@"Error : " + ex.Message));
                    //						Thread.Sleep (1500);
                    break;
                }
            }
        }
예제 #20
0
        void UpLoadAttendancePhotos()
        {
            string cookieName = string.Empty;
            string cookieValue = string.Empty;
            var user = Common.GetCurrentUser ();

            var login = new RestClient(Settings.URLs.Host);

            //login.Authenticator = new SimpleAuthenticator("identifier", "*****@*****.**", "password", "q1234567");
            login.Authenticator = new SimpleAuthenticator(@"identifier", user.username, @"password", user.password);
            login.CookieContainer = new CookieContainer();

            var loginReq = new RestRequest(@"auth/local", Method.POST);
            var loginRes = login.Execute<User>(loginReq);
            User userRes = loginRes.Data;

            if (userRes == null)
            {
                RunOnUiThread(() => progressDialog.SetMessage(@"Не удалось пройти аутентификацию!"));
            }

            cookieName = loginRes.Cookies[0].Name;
            cookieValue = loginRes.Cookies[0].Value;

            var queueToUpload = (List<SyncQueue>) SyncQueueManager.GetSyncQueue(selectedDate);
            foreach (var q in queueToUpload) {
                try {
                    if (( q.type == SyncQueueType.sqtAttendancePhoto) && (!q.isSync)) {
                        //Debug.WriteLine(@"Получение информации о себе.", @"Info");
                        AttendancePhoto attendancePhoto = SyncQueueManager.GetAttendancePhoto(q.fileLocation);
                        //Attendance attendance = AttendanceManager.GetAttendance (attendancePhoto.attendance);
                        RunOnUiThread(() => progressDialog.SetMessage(string.Format(@"Загрузка фото с id {0} по посещению с id:{1}", attendancePhoto.id, attendancePhoto.attendance)));

                        var client = new RestClient(Settings.URLs.Host);

                        //					var request = new RestRequest (@"AttendancePhoto/create?attendance={attendance}&longitude={longitude}&latitude={latitude}&stamp={stamp}", Method.POST);
                        var request = new RestRequest (@"AttendancePhoto/create?localID={localID}&attendance={attendance}&longitude={longitude}&latitude={latitude}&subType={subType}", Method.POST);
                        request.AddCookie(cookieName, cookieValue);
                        request.AddUrlSegment(@"localID", attendancePhoto.id.ToString());
                        request.AddUrlSegment(@"attendance", attendancePhoto.attendance.ToString());
                        request.AddUrlSegment(@"longitude", attendancePhoto.longitude.ToString(CultureInfo.CreateSpecificCulture("en-GB")));
                        request.AddUrlSegment(@"latitude", attendancePhoto.latitude.ToString(CultureInfo.CreateSpecificCulture("en-GB")));
                        request.AddUrlSegment(@"subType", attendancePhoto.subType.ToString());
                        //					request.AddUrlSegment(@"stamp", attendancePhoto.stamp.ToString());
                        request.AddFile (@"photo", File.ReadAllBytes (attendancePhoto.photoPath), Path.GetFileName (attendancePhoto.photoPath), string.Empty);

                        var response = client.Execute(request);

                        switch (response.StatusCode) {
                        case HttpStatusCode.OK:
                        case HttpStatusCode.Created:
                            //					case HttpStatusCode.U
                            q.isSync = true;
                            SyncQueueManager.SaveSyncQueue (q, false);
                            //						Thread.Sleep (500);
                            RunOnUiThread(() => {
                                progressDialog.SetMessage(string.Format(@"Фото с id {0} по посещению с id:{1}"" ЗАГРУЖЕНО!", attendancePhoto.id, attendancePhoto.attendance));
                                //							RefreshContent();
                            });
                            continue;
                        default:
                            //						Thread.Sleep (500);
                            RunOnUiThread(() => progressDialog.SetMessage(@"Не удалось загрузить фото по посещению!"));
                            //						Thread.Sleep (1500);
                            continue;
                        }
                    }
                } catch (Exception ex) {
                    RunOnUiThread(() => progressDialog.SetMessage(@"Error : " + ex.Message));
                    //						Thread.Sleep (1500);
                    continue;
                }
            }
        }
예제 #21
0
        private static void ExecutePost(string relativePath, Action<RestRequest> requestSetupAction)
        {
            var client = new RestClient(baseUrl);
              var request = new RestRequest(relativePath);
              Cookie cookie;
              try
              {
            cookie = browser.Driver.GetBrowserCookies().First();
              }
              catch (Exception e)
              {
            throw new MonopolyTestRunException("Error retrieving cookies (probably can blame the IE driver) - Error attempting to retrieve cookies from the Selenium browser so we can use those cookies to make requests against the Secret Admin controller. If you see this error message and are using the Internet Explorer web driver, well, sorry, I couldn't figure out how to retrieve cookies from IE either (it seems the IE selenium driver reports 0 cookies always). Best of luck. Inner exception: " + e.ToString());
              }
              request.AddCookie(cookie.Name, cookie.Value);
              request.Method = Method.POST;

              requestSetupAction(request);

              var response = client.Execute(request);
              if (response.StatusCode != HttpStatusCode.OK)
            throw new MonopolyTestRunException("Error while attempting to POST to " + relativePath +" during test setup/teardown. Response from server: " + response.Content);
        }
		public void AddSessionCookieToRequest(RestRequest request)
		{
			foreach (var k in _sessionCookies.Keys)
				request.AddCookie(k, _sessionCookies[k]);
		}
예제 #23
0
        void UpLoadAttendanceResults()
        {
            string cookieName = string.Empty;
            string cookieValue = string.Empty;
            var user = Common.GetCurrentUser ();

            var login = new RestClient(Settings.URLs.Host);

            //login.Authenticator = new SimpleAuthenticator("identifier", "*****@*****.**", "password", "q1234567");
            login.Authenticator = new SimpleAuthenticator(@"identifier", user.username, @"password", user.password);
            login.CookieContainer = new CookieContainer();

            var request = new RestRequest(@"auth/local", Method.POST);
            var response = login.Execute<User>(request);
            User userRes = response.Data;

            if (userRes == null)
            {
                RunOnUiThread(() => progressDialog.SetMessage(@"Не удалось пройти аутентификацию!"));
            }

            cookieName = response.Cookies[0].Name;
            cookieValue = response.Cookies[0].Value;

            var queueToUpload = (List<SyncQueue>) SyncQueueManager.GetSyncQueue(selectedDate);
            foreach (var q in queueToUpload) {
                try {
                    if (( q.type == SyncQueueType.sqtAttendanceResult) && (!q.isSync)) {
                        var client = new RestClient(Settings.URLs.Host);

                        //Debug.WriteLine(@"Получение информации о себе.", @"Info");
                        AttendanceResult attendanceResult = SyncQueueManager.GetAttendaceResult(q.fileLocation);
                        //Attendance attendance = AttendanceManager.GetAttendance (attendanceResult.attendance);
                        RunOnUiThread(() => progressDialog.SetMessage(string.Format(@"Загрузка значения с id {0} по посещению с id:{1}", attendanceResult.id, attendanceResult.attendance)));
                        request = new RestRequest(@"AttendanceResult/", Method.POST);
                        request.AddCookie(cookieName, cookieValue);
                        request.RequestFormat = DataFormat.Json;
                        request.JsonSerializer.ContentType = @"application/json; charset=utf-8";
                        request.AddParameter(@"application/json; charset=utf-8", attendanceResult.ToJSON(), ParameterType.RequestBody);
                        //					attendanceResult.id = 0;
                        //					request.AddBody(attendanceResult);

                        var respAttendanceResult = client.Execute(request);

                        switch (respAttendanceResult.StatusCode) {
                        case HttpStatusCode.OK:
                        case HttpStatusCode.Created:
                            q.isSync = true;
                            SyncQueueManager.SaveSyncQueue (q, false);
                            //						Thread.Sleep (500);
                            RunOnUiThread(() => {
                                progressDialog.SetMessage(string.Format(@"Значение с id {0} по посещению с id:{1} ЗАГРУЖЕНО!", attendanceResult.id, attendanceResult.attendance));
                                //							RefreshContent();
                            });
                            continue;
                        default:
                            //						Thread.Sleep (500);
                            RunOnUiThread(() => progressDialog.SetMessage(@"Не удалось загрузить значение по посещению!"));
                            //						Thread.Sleep (1500);
                            continue;
                        }
                    }
                } catch (Exception ex) {
                    RunOnUiThread(() => progressDialog.SetMessage(@"Error : " + ex.Message));
                    //						Thread.Sleep (1500);
                    continue;
                }
            }
        }
예제 #24
0
        private static void RestClientInvoke()
        {
            var client = new RestClient("http://*****:*****@"administrator", "Lanxum123456");
            var request = new RestRequest(Method.GET);

            //request.AddUrlSegment("api", "POAPI");
            //request.AddUrlSegment("method", "CreatePO");
            //request.AddHeader("content-type", "application/json; charset=utf-8");
            //request.AddHeader("Accept", "applicaiton/json");

            request.RequestFormat = DataFormat.Json;


            //var dto = new PODTO()
            //{
            //    DriverName = "123",
            //    FileName = "231",
            //    OrderNo = "order",
            //    CreatedOn = DateTime.Now,
            //    Createdby = "zhangzs",
            //    SafeLevel = SafeLevel.Classified,
            //    PrintBy = new Guid("86F6C414-9D34-4970-9A17-25FCE4CF563A")
            //};
            //request.AddBody(new
            //    {
            //        username = "******",
            //        password = "******"
            //    });
            request.AddCookie(".ASPXAUTH",
                              "9B39C3A516F088217BCEC4E8C71849876DE6E7655FE4E934F9FD78ECBA198C527F21FED5959B4A39EE1DECEE6D7FEFA3F1B688833A1278B1B62E4BD77FC9B6FE15DBCD8A4A2CFB0CEB192FD7530EEA693552B3257FAECF175A8E478186404B8D7653599A12B246B133B23E1643878A800B9802C800D20014BBECFB944E0E8E6E");
            var response = client.Execute(request);
            var content = response.Content;

        }
예제 #25
0
        public Task <BaseRestSharp.RestResponse> InvokeCall(HttpServiceRequest httpRequest, bool throwException = true,
                                                            bool isElasticLog = false, bool invokeAsync = false)
        {
            ServicePointManager.DefaultConnectionLimit = 200;
            // Base URL
            BaseRestSharp.RestClient    client   = new BaseRestSharp.RestClient(httpRequest.Url);
            BaseRestSharp.IRestResponse response = null;
            Stopwatch watch = new Stopwatch();


            // Method to be triggered
            BaseRestSharp.RestRequest request = new BaseRestSharp.RestRequest(httpRequest.Action, (BaseRestSharp.Method)httpRequest.MethodType)
            {
                Timeout = httpRequest.Timeout
            };

            if (httpRequest.CookieJar != null)
            {
                foreach (Cookie cookie in httpRequest.CookieJar)
                {
                    request.AddCookie(cookie.Name, cookie.Value);
                }
            }

            if (httpRequest.Body != null)
            {
                request.RequestFormat = BaseRestSharp.DataFormat.Json;
                request.AddJsonBody(httpRequest.Body);
            }

            if (httpRequest.Headers != null)
            {
                foreach (KeyValuePair <string, string> header in httpRequest.Headers.ToList())
                {
                    request.AddHeader(header.Key, header.Value);
                }
            }


            if (httpRequest.QueryStringParameters != null)
            {
                foreach (KeyValuePair <string, string> param in httpRequest.QueryStringParameters.ToList())
                {
                    request.AddQueryParameter(param.Key, param.Value);
                }
            }

            watch.Start();

            BaseRestSharp.RestResponse customRestResponse = null;
            TaskCompletionSource <BaseRestSharp.RestResponse> taskCompletionSource = new TaskCompletionSource <BaseRestSharp.RestResponse>();


            response = client.Execute(request);
            watch.Stop();

            taskCompletionSource.SetResult(customRestResponse);

            ResponseVerifications(response, throwException, httpRequest.Url, httpRequest.MethodType);


            return(taskCompletionSource.Task);
        }
예제 #26
0
 string GetCompanyDetails(Company company)
 {
     RestClient client = new RestClient (company.DetailUri.ToString ());
     RestRequest request = new RestRequest (Method.GET);
     request.AddCookie (cookie.Name, cookie.Value);
     IRestResponse response = client.Execute (request);
     if (response.StatusCode != HttpStatusCode.OK)
         return string.Empty;
     string cleanHtml = CleanHtml (response.Content);
     HtmlDocument htmlDoc = new HtmlDocument ();
     htmlDoc.LoadHtml (cleanHtml);
     return HttpUtility.HtmlDecode (htmlDoc.DocumentNode.InnerText.Replace ("\n", string.Empty).Replace ("\r", string.Empty));
 }
예제 #27
0
 private RestRequest PrepareGetRequest(string resource, string rootElement = RequestRootElement)
 {
     var request = new RestRequest(resource, Method.GET) {RequestFormat = DataFormat.Json};
     request.AddCookie ("PVEAuthCookie", _apiTicket.ticket);
     request.RootElement = rootElement;
     return request;
 }
예제 #28
-1
 private void ActivateToken()
 {
     var request = new RestRequest("api/security/actions/activate_token");
     request.AddCookie(authCookieName, authCookieValue);
     request.Method = Method.POST;
     IRestResponse response = client.Execute(request);
     Assert.IsTrue(response.StatusCode == HttpStatusCode.OK);
     var content = response.Content;
     Trace.WriteLine(content);
 }