/// <summary>
        /// Sends the given History object to the cloud.
        /// </summary>
        /// <param name="history">History object to send.</param>
        public async Task <ResponseMessage> SendHistory(History history)
        {
            try
            {
                Logger.Trace("SendHistory");
                System.Net.Http.HttpClient apiConnection = new System.Net.Http.HttpClient();
                apiConnection.DefaultRequestHeaders.Add(Constants.XApiKey, Configuration.ApiKey);
                apiConnection.DefaultRequestHeaders.Add(Constants.Xiid, SdkData.DeviceId);
                apiConnection.DefaultRequestHeaders.Add(Constants.AdvertisementIdentifierHeader,
                                                        string.IsNullOrEmpty(Configuration.UserId) ? Windows.System.UserProfile.AdvertisingManager.AdvertisingId : Configuration.UserId);
                apiConnection.DefaultRequestHeaders.TryAddWithoutValidation(Constants.XUserAgent, UserAgentBuilder.BuildUserAgentJson());
                string serializeObject = JsonConvert.SerializeObject(history);
                var    content         = new StringContent(serializeObject, Encoding.UTF8, "application/json");

                System.Net.Http.HttpResponseMessage responseMessage = await apiConnection.PostAsync(new Uri(Configuration.LayoutUri), content);

                Logger.Trace("SendHistory HttpCode: {0}", responseMessage.StatusCode);
                if (responseMessage.IsSuccessStatusCode)
                {
                    LastCallResult = NetworkResult.Success;
                    return(new ResponseMessage()
                    {
                        Content = responseMessage.Content.ToString(),
                        Header = responseMessage.Headers.ToString(),
                        StatusCode = Convert(responseMessage.StatusCode),
                        IsSuccess = responseMessage.IsSuccessStatusCode
                    });
                }
                LastCallResult = NetworkResult.UnknownError;
                return(new ResponseMessage()
                {
                    StatusCode = Convert(responseMessage.StatusCode), IsSuccess = responseMessage.IsSuccessStatusCode
                });
            }
            catch (Exception ex)
            {
                Logger.Error("SendHistory Error", ex);
                LastCallResult = NetworkResult.NetworkError;
                return(new ResponseMessage()
                {
                    IsSuccess = false
                });
            }
        }
Exemplo n.º 2
0
        private async void ButtonSystemNetHttp_OnClick(object sender, RoutedEventArgs e)
        {
            var httpClientHandler = new System.Net.Http.HttpClientHandler();

            CookieCollection cookieCollection = httpClientHandler.CookieContainer.GetCookies(_uri);
            var cookies = new Cookie[cookieCollection.Count];

            cookieCollection.CopyTo(cookies, 0);
            using (var httpClient = new System.Net.Http.HttpClient())
            {
                var requestMessage = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, _uri);
                Request.Text = new StringBuilder().AppendLine(requestMessage.ToString())
                               .AppendLine(requestMessage.Headers.ToString())
                               .AppendLine(string.Join("\n", cookies.ToList())).ToString();

                System.Net.Http.HttpResponseMessage responseMessage = await httpClient.SendAsync(requestMessage);

                Request1.Text = new StringBuilder().AppendLine(responseMessage.RequestMessage.ToString())
                                .AppendLine(string.Join(" - ", cookies.ToList())).ToString();

                Response.Text = responseMessage.ToString();
            }
        }