Beispiel #1
0
        private static async Task <string> RequestAsync(HttpRequestMessage request, RequestVersion requestVersion)
        {
            var shortUrl = request.RequestUri.OriginalString; //get FULL url

            request.RequestUri = new Uri(GetFullUrl(shortUrl, requestVersion));

            logger.InfoStartRequest(request);                              //logging

            request.Headers.Add("User-Agent", AppName + " %40" + DevName); //%40 - @
            if (IsAuthorized)
            {
                if (AutoRefreshToken && IsTokenExpired)
                {
                    await RefreshTokenAsync().ConfigureAwait(false);
                }
                request.Headers.Add("Authorization", "Bearer " + OAuth2Token.AccessToken);
            }

            HttpResponseMessage response;

            using (client = new HttpClient())
            {
                response = await client.SendAsync(request).ConfigureAwait(false);
            }

            if (response.IsSuccessStatusCode)
            {
                logger.InfoDoneRequest(request); //logging
                return(await response.Content.ReadAsStringAsync().ConfigureAwait(false));
            }

            logger.WarnNotOkResponse(request, response); //logging

            return(null);
        }