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)); } } }
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)); } } }