コード例 #1
0
        public async Task <RestApiResult <UserInfo> > GetUserInformationAsync(string userName, string password, bool isBearerToken)
        {
            var requestUri = new Uri(_apiUri, "2.0/user");

            using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, requestUri))
            {
                if (isBearerToken)
                {
                    request.AddBearerAuthenticationHeader(password);
                }
                else
                {
                    request.AddBasicAuthenticationHeader(userName, password);
                }

                _context.Trace.WriteLine($"HTTP: GET {requestUri}");
                using (HttpResponseMessage response = await HttpClient.SendAsync(request))
                {
                    _context.Trace.WriteLine($"HTTP: Response {(int) response.StatusCode} [{response.StatusCode}]");

                    string json = await response.Content.ReadAsStringAsync();

                    if (response.IsSuccessStatusCode)
                    {
                        var obj = JsonConvert.DeserializeObject <UserInfo>(json, new JsonSerializerSettings {
                            NullValueHandling = NullValueHandling.Ignore
                        });

                        return(new RestApiResult <UserInfo>(response.StatusCode, obj));
                    }

                    return(new RestApiResult <UserInfo>(response.StatusCode));
                }
            }
        }
コード例 #2
0
        public async Task <GitHubUserInfo> GetUserInfoAsync(Uri targetUri, string accessToken)
        {
            Uri requestUri = GetApiRequestUri(targetUri, "user");

            _context.Trace.WriteLine($"HTTP: GET {requestUri}");
            using (var request = new HttpRequestMessage(HttpMethod.Get, requestUri))
            {
                request.AddBearerAuthenticationHeader(accessToken);

                using (HttpResponseMessage response = await HttpClient.SendAsync(request))
                {
                    _context.Trace.WriteLine($"HTTP: Response {(int) response.StatusCode} [{response.StatusCode}]");

                    response.EnsureSuccessStatusCode();

                    string json = await response.Content.ReadAsStringAsync();

                    return(JsonConvert.DeserializeObject <GitHubUserInfo>(json));
                }
            }
        }