public void TestMakeRequestTimeout()
        {
            string response;
            var    statusCode = new HttpRequestSender().MakeRequest("http://google.com", 1, out response);

            Assert.AreEqual(statusCode, HttpStatusCode.RequestTimeout);
        }
Esempio n. 2
0
        /// <summary>
        /// 注册
        /// </summary>
        /// <param name="email">电子邮件</param>
        /// <param name="password">密码</param>
        /// <returns>成功返回盐</returns>
        public async static Task <string> RegisterAsync(string email, string password)
        {
            try
            {
                var ps = MD5.GetMd5String(password); //把密码MD5加密

                var param = GetDefaultParam();
                param.Add(new KeyValuePair <string, string>("email", email));
                param.Add(new KeyValuePair <string, string>("password", ps));

                CancellationTokenSource cts = new CancellationTokenSource(10000);
                var result = await HttpRequestSender.SendPostRequestAsync(UrlHelper.UserRegisterUri, param, cts.Token);

                result.ParseResult();
                if (result.IsRequestSuccessful)
                {
                    JsonObject obj      = JsonObject.Parse(result.JsonSrc);
                    var        userInfo = JsonParser.GetJsonObjFromJsonObj(obj, "UserInfo");
                    var        salt     = JsonParser.GetStringFromJsonObj(userInfo, "Salt");
                    return(salt);
                }
                else
                {
                    return(null);
                }
            }
            catch (OperationCanceledException)
            {
                throw;
            }
        }
Esempio n. 3
0
        public void TestProcessResponseWithDataCollection()
        {
            List <BasicUserData> testUsersList = new List <BasicUserData>();

            testUsersList.Add(new BasicUserData()
            {
                Login = "******",
                URL   = "url1"
            });
            testUsersList.Add(new BasicUserData()
            {
                Login = "******",
                URL   = "url2"
            });
            string listJson             = JsonConvert.SerializeObject(testUsersList);
            HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK);

            message.Content = new StringContent(listJson);
            HttpRequestSender requestSender = new HttpRequestSender("token");
            ClientResponse <IEnumerable <BasicUserData> > testResponse = requestSender.ProcessHttpResponse <IEnumerable <BasicUserData> >(message, HttpRequestSenderTest.TestNotFoundMessage).GetAwaiter().GetResult();

            Assert.Equal(MessagesHelper.StandartSuccessMessage, testResponse.Message);
            Assert.Equal(OperationStatus.Susseess, testResponse.Status);
            IEnumerable <BasicUserData> testUsersCollection = testResponse.ResponseData;

            Assert.Equal(2, testUsersCollection.Count());
        }
        private void UpdateDetails(object sender, EventArgs e)
        {
            string requestURL            = App.apiPath + App.productsApiPath + App.countryContextPathSuffix;
            HttpResponseMessage response =
                HttpRequestSender.SendHttpRequest(requestURL, viewModel.Item, HttpMethod.Put, true).GetAwaiter().GetResult();

            requestURL = App.apiPath + App.productsApiPath + "/" + viewModel.Item.Id + App.countryContextPathSuffix;
            response   = HttpRequestSender.SendHttpRequest(requestURL, null, HttpMethod.Get, true).GetAwaiter().GetResult();

            if (!response.IsSuccessStatusCode)
            {
                label_InfoForUser.Text      = "Product details update failed.";
                label_InfoForUser.TextColor = Color.Red;
                return;
            }

            string editedItemStream = response.Content.ReadAsStringAsync()
                                      .GetAwaiter().GetResult();

            Item editedItem = JsonConvert.DeserializeObject <Item>(editedItemStream);

            viewModel.Item = editedItem;
            UpdatePageDetails();
            ChangeDetailsEditMode(sender, e);
            label_InfoForUser.Text      = "Product details update succeded.";
            label_InfoForUser.TextColor = Color.Green;
            //App.Current.MainPage = new MainPage();
        }
Esempio n. 5
0
        public async static Task <string> GetMyOrderAsync()
        {
            try
            {
                var param = GetDefaultParam();
                param.Add(new KeyValuePair <string, string>("sid", UrlHelper.SID));

                HttpClient client           = new HttpClient();
                CancellationTokenSource cts = new CancellationTokenSource(10000);
                var result = await HttpRequestSender.SendPostRequestAsync(UrlHelper.ScheduleGetOrderUri +
                                                                          "sid=" + UrlHelper.SID + "&access_token=" + UrlHelper.AccessToken,
                                                                          param, cts.Token);

                result.ParseResult();
                if (result.IsRequestSuccessful)
                {
                    var obj       = JsonObject.Parse(result.JsonSrc);
                    var array     = JsonParser.GetJsonArrayFromJsonObj(obj, "OrderList");
                    var firstObj  = array.GetObjectAt(0);
                    var listOrder = JsonParser.GetStringFromJsonObj(firstObj, "list_order");
                    return(listOrder);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception e)
            {
                var task = Logger.LogAsync(e);
                return(null);
            }
        }
Esempio n. 6
0
        /// <summary>
        /// 获盐
        /// </summary>
        /// <param name="email">用户Email</param>
        /// <returns></returns>
        public async static Task <string> GetSaltAsync(string email)
        {
            try
            {
                var param = GetDefaultParam();
                param.Add(new KeyValuePair <string, string>("email", email));

                CancellationTokenSource cts = new CancellationTokenSource(10000);
                var result = await HttpRequestSender.SendPostRequestAsync(UrlHelper.UserGetSalt, param, cts.Token);

                result.ParseResult();
                if (result.IsRequestSuccessful)
                {
                    JsonObject obj  = JsonObject.Parse(result.JsonSrc);
                    var        salt = JsonParser.GetStringFromJsonObj(obj, "Salt");
                    return(salt);
                }
                else
                {
                    return(null);
                }
            }
            catch (OperationCanceledException)
            {
                throw;
            }
        }
Esempio n. 7
0
    public override void OnStartServer()
    {
        api   = new HttpApiLogic(HttpRequestSender.GetInstance());
        roads = RoadController.GetInstance();
        roads.OnCustomStartServer();

        var randomPositions = AchievementController.GetRandomPositions(COINS_COUNT, roads);

        foreach (Vector2 position in randomPositions)
        {
            NetworkServer.Spawn(
                Instantiate(
                    achievementPrefab,
                    new Vector3(position.x, 1.5f, position.y),
                    Quaternion.AngleAxis(45, Vector3.up) * Quaternion.AngleAxis(90, Vector3.forward)
                    )
                );
        }

        var superPosition = AchievementController.GetPoint(roads);

        NetworkServer.Spawn(
            Instantiate(
                superAchievementPrefab,
                new Vector3(superPosition.x, 1.5f, superPosition.y),
                Quaternion.AngleAxis(45, Vector3.up) * Quaternion.AngleAxis(90, Vector3.forward)
                )
            );
    }
        public void TestRequestWith500()
        {
            string response;
            var    statusCode = new HttpRequestSender().MakeRequest("http://localhost:24869/api/Values/abc", 5000, out response);

            Assert.AreEqual(statusCode, HttpStatusCode.InternalServerError);
        }
        public void TestResponseIsNotNull()
        {
            string response;
            var    statusCode = new HttpRequestSender().MakeRequest("http://localhost:24869/api/Values", 5000, out response);

            Assert.AreEqual(statusCode, HttpStatusCode.OK);
            Assert.IsNotNull(response);
        }
Esempio n. 10
0
        public static async Task <CommonRespMsg> GetCategories(CancellationToken token)
        {
            var param = GetDefaultParam();

            var result = await HttpRequestSender.SendGetRequestAsync(UrlHelper.MakeFullUrlForGetReq(UrlHelper.GetCategories, param), token);

            return(result);
        }
Esempio n. 11
0
        public static async Task <CommonRespMsg> GetImageDetail(string id, CancellationToken token)
        {
            var param = GetDefaultParam();
            var url   = UrlHelper.MakeFullUrlForGetReq(UrlHelper.GetImageDetail + id, param);

            var result = await HttpRequestSender.SendGetRequestAsync(url, token);

            return(result);
        }
Esempio n. 12
0
        internal async Task <CommonRespMsg> GetImageDetailAsync(string id, CancellationToken token)
        {
            var param = GetDefaultParam();
            var url   = Request.AppendParamsToUrl(Request.GetImageDetail + id, param);

            var result = await HttpRequestSender.SendGetRequestAsync(url, token);

            return(result);
        }
Esempio n. 13
0
        internal async Task <CommonRespMsg> GetRandomImagesAsync(int count, CancellationToken token)
        {
            var param = GetDefaultParam();

            param.Add(new KeyValuePair <string, string>("count", count.ToString()));

            var result = await HttpRequestSender.SendGetRequestAsync(Request.AppendParamsToUrl(Request.GetRandomImages, param), token);

            return(result);
        }
Esempio n. 14
0
        public void TestProcessResponseWithCreatedCode()
        {
            HttpRequestSender       requestSender = new HttpRequestSender("token");
            HttpResponseMessage     message       = new HttpResponseMessage(HttpStatusCode.Created);
            ClientResponse <string> testResponse  = requestSender.ProcessHttpResponse <string>(message, HttpRequestSenderTest.TestNotFoundMessage).GetAwaiter().GetResult();

            Assert.Equal(MessagesHelper.StandartSuccessMessage, testResponse.Message);
            Assert.Equal(OperationStatus.Susseess, testResponse.Status);
            Assert.Null(testResponse.ResponseData);
        }
        private string sendMessageRequest(string msg)
        {
            Dictionary <string, string> paras = new Dictionary <string, string>();

            paras["username"] = ConfigurationManager.UserName;
            paras["content"]  = msg;
            string rst = HttpRequestSender.sendRequest(String.Format("{0}/post", ConfigurationManager.MessageServerUrl), paras, "post");

            return(rst);
        }
Esempio n. 16
0
        public static async Task <CommonRespMsg> GetRandomImages(int count, CancellationToken token)
        {
            var param = GetDefaultParam();

            param.Add(new KeyValuePair <string, string>("count", count.ToString()));

            var result = await HttpRequestSender.SendGetRequestAsync(UrlHelper.MakeFullUrlForGetReq(UrlHelper.GetRandomImages, param), token);

            return(result);
        }
Esempio n. 17
0
        public void TestProcessResponseWithUnknownError()
        {
            HttpRequestSender       requestSender = new HttpRequestSender("token");
            HttpResponseMessage     message       = new HttpResponseMessage(HttpStatusCode.InternalServerError);
            ClientResponse <string> testResponse  = requestSender.ProcessHttpResponse <string>(message, HttpRequestSenderTest.TestNotFoundMessage).GetAwaiter().GetResult();

            Assert.Equal(MessagesHelper.UnknownErrorMessage, testResponse.Message);
            Assert.Equal(OperationStatus.UnknownState, testResponse.Status);
            Assert.Null(testResponse.ResponseData);
        }
Esempio n. 18
0
        private async void OnAuthCompletedAsync(object sender, AuthenticatorCompletedEventArgs e)
        {
            string UserInfoUrl = "https://www.googleapis.com/oauth2/v2/userinfo";

            var authenticator = sender as OAuth2Authenticator;

            if (authenticator != null)
            {
                authenticator.Completed -= OnAuthCompletedAsync;
                authenticator.Error     -= OnAuthErrorAsync;
            }

            GoogleUserModel user = null;

            if (e.IsAuthenticated)
            {
                // If the user is authenticated, request their basic user data from Google
                // UserInfoUrl = https://www.googleapis.com/oauth2/v2/userinfo
                var request  = new OAuth2Request("GET", new Uri(UserInfoUrl), null, e.Account);
                var response = request.GetResponseAsync().GetAwaiter().GetResult();
                if (response != null)
                {
                    // Deserialize the data and store it in the account store
                    string userJson = response.GetResponseTextAsync().GetAwaiter().GetResult();
                    user = JsonConvert.DeserializeObject <GoogleUserModel>(userJson);

                    await DisplayAlert("Successful authorization", "Google have granted your credentials.", "OK");

                    string requestForBearerTokenURL = App.apiPath + App.usersApiPath + "/LogInUsingGoogleAccount?idToken="
                                                      + e.Account.Properties["id_token"];

                    HttpResponseMessage responseForBearerToken =
                        HttpRequestSender.SendHttpRequest(requestForBearerTokenURL, user, HttpMethod.Post).GetAwaiter().GetResult();

                    string bearerTokenString = responseForBearerToken.Content.ReadAsStringAsync()
                                               .GetAwaiter().GetResult();

                    if (bearerTokenString == "null")
                    {
                        label_InfoForUser.Text      = "Service could not start session.";
                        label_InfoForUser.TextColor = Color.Red;
                        return;
                    }

                    TokenModel bearerToken = JsonConvert.DeserializeObject <TokenModel>(bearerTokenString);

                    BearerTokenModel.Instance.Token = bearerToken.Token;
                    App.Current.MainPage            = new MainPage();
                    return;
                }
            }

            await DisplayAlert("Unsuccessful authorization", "Google have not granted your credentials", "OK");
        }
Esempio n. 19
0
        internal async Task <CommonRespMsg> GetImagesAsync(int page, int pageCount, CancellationToken token, string url)
        {
            var param = GetDefaultParam();

            param.Add(new KeyValuePair <string, string>("page", page.ToString()));
            param.Add(new KeyValuePair <string, string>("per_page", pageCount.ToString()));

            var result = await HttpRequestSender.SendGetRequestAsync(Request.AppendParamsToUrl(url, param), token);

            return(result);
        }
Esempio n. 20
0
        public async Task WhenErrorReceivedAnExceptionIsThown()
        {
            using (var httpListener = new TestHttpListener(HttpStatusCode.Forbidden))
                using (var httpRequestSender = new HttpRequestSender())
                {
                    var requestMessage = new HttpRequestMessage(HttpMethod.Get, httpListener.ListeningUrl);
                    var doRequest      = httpRequestSender.SendHttpRequest(requestMessage);

                    await Assert.ThrowsAsync <HttpRequestException>(() => doRequest);
                }
        }
Esempio n. 21
0
        public static async Task <CommonRespMsg> SearchImages(int page, int pageCount, string query, CancellationToken token)
        {
            var param = GetDefaultParam();

            param.Add(new KeyValuePair <string, string>("page", page.ToString()));
            param.Add(new KeyValuePair <string, string>("per_page", pageCount.ToString()));
            param.Add(new KeyValuePair <string, string>("query", query));

            var result = await HttpRequestSender.SendGetRequestAsync(UrlHelper.MakeFullUrlForGetReq(UrlHelper.SearchImages, param), token);

            return(result);
        }
Esempio n. 22
0
        public void WhenErrorReceivedAnExceptionIsThown()
        {
            using (var testHttpListener = new TestHttpListener(HttpStatusCode.Forbidden, null))
            {
                using (HttpRequestSender apiRequestSender = new HttpRequestSender())
                {
                    HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Get, testHttpListener.ListeningUrl);

                    Assert.ThrowsAsync <HttpRequestException>(async() => await apiRequestSender.SendHttpRequest(requestMessage));
                }
            }
        }
        private string SendHeartBeat()
        {
            string rst = HttpRequestSender.sendRequest(
                String.Format("{0}/heartbeat?lasttime={1}&username={2}",
                              ConfigurationManager.MessageServerUrl,
                              LastSynchronizationTime,
                              ConfigurationManager.UserName),
                null,
                "get");

            return(rst);
        }
        public async Task GetStringContentAsync_ValidRequestUri_ReturnContent()
        {
            // Arrange
            var _HttpClient    = new HttpClient();
            var _RequestSender = new HttpRequestSender(_HttpClient);
            var _Uri           = new Uri("https://httpstat.us/200");

            // Act
            var _SearchResults = await _RequestSender.GetStringContentAsync(_Uri);

            // Assert
            Assert.NotNull(_SearchResults);
        } //GetStringContentAsync_ValidRequestUri_ReturnContent
Esempio n. 25
0
        public void TestProcesResponseWithInvalidJson()
        {
            string invalidJson          = "invalid json";
            HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK);

            message.Content = new StringContent(invalidJson);
            HttpRequestSender requestSender             = new HttpRequestSender("token");
            ClientResponse <BasicUserData> testResponse = requestSender.ProcessHttpResponse <BasicUserData>(message, HttpRequestSenderTest.TestNotFoundMessage).GetAwaiter().GetResult();
            string expextedMessage = $"{MessagesHelper.InvalidJsonMessage}: {invalidJson}";

            Assert.Equal(expextedMessage, testResponse.Message);
            Assert.Equal(OperationStatus.Error, testResponse.Status);
        }
Esempio n. 26
0
        public async Task WhenSuccessReceivedResponseIsReturned()
        {
            using (var httpListener = new TestHttpListener(HttpStatusCode.OK))
                using (var httpRequestSender = new HttpRequestSender())
                {
                    var requestMessage = new HttpRequestMessage(HttpMethod.Get, httpListener.ListeningUrl);
                    var response       = await httpRequestSender.SendHttpRequest(requestMessage);

                    Assert.Equal(
                        httpRequestSender.UserAgent,
                        response.RequestMessage.Headers.GetValues("User-Agent").First()
                        );
                }
        }
        public async Task GetStringContentAsync_UnsuccessfulResponse_ThrowsHttpRequestException()
        {
            // Arrange
            var _HttpClient    = new HttpClient();
            var _RequestSender = new HttpRequestSender(_HttpClient);
            var _Uri           = new Uri("https://httpstat.us/400");

            // Act
            var _Exception = await Record.ExceptionAsync(() => _RequestSender.GetStringContentAsync(_Uri));

            // Assert
            Assert.NotNull(_Exception);
            Assert.IsType <HttpRequestException>(_Exception);
        } //GetStringContentAsync_UnsuccessfulResponse_ThrowsHttpRequestException
Esempio n. 28
0
        async void Save_Clicked(object sender, EventArgs e)
        {
            string requestURL            = App.apiPath + App.productsApiPath + App.countryContextPathSuffix;
            HttpResponseMessage response =
                HttpRequestSender.SendHttpRequest(requestURL, Item, HttpMethod.Post, true).GetAwaiter().GetResult();

            if (!response.IsSuccessStatusCode)
            {
                return;
            }

            MessagingCenter.Send(this, "AddItem", Item);
            await Navigation.PopModalAsync();
        }
Esempio n. 29
0
        async Task ExecuteLoadItemsCommand()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            try
            {
                if (App.currentConnectionType == ConnectionType.Offline)
                {
                    Items = App.offlineSync.OfflineItems;
                }
                else
                {
                    if (Items == null)
                    {
                        Items = new ObservableCollection <Item>();
                    }
                    Items.Clear();
                    //var items = await DataStore.GetItemsAsync(true);

                    string requestURL            = App.apiPath + App.productsApiPath + App.countryContextPathSuffix;
                    HttpResponseMessage response =
                        HttpRequestSender.SendHttpRequest(requestURL, null, HttpMethod.Get, true).GetAwaiter().GetResult();

                    string responseString = response.Content.ReadAsStringAsync()
                                            .GetAwaiter().GetResult();
                    var items = JsonConvert.DeserializeObject <IEnumerable <Item> >(responseString);

                    foreach (var item in items)
                    {
                        Items.Add(item);
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
Esempio n. 30
0
        public async static Task <CommonRespMsg> GetCateInfoAsync()
        {
            try
            {
                CancellationTokenSource cts = new CancellationTokenSource(10000);
                var result = await HttpRequestSender.SendGetRequestAsync(UrlHelper.UserGetCateUri + $"sid={UrlHelper.SID}&access_token={UrlHelper.AccessToken}&a={new Random().Next()}", cts.Token);

                result.ParseResult();
                return(result);
            }
            catch (OperationCanceledException)
            {
                throw;
            }
            catch (Exception)
            {
                return(null);
            }
        }