Our APIs need to be accessible by NTLM authorization for that I tried below code:
string sevenpaceAPIUrl = "https://7pace.***.com:port/api/DefaultCollection/odata/v3.1";
// NTLM Secured URL
//var uri = new Uri(sevenpaceAPIUrl + "/workLogsWorkItems?$apply=groupby((User/Name,WorkItem/System_TeamProject,WorkItem/System_WorkItemType,WorkItem/System_Id,WorklogDate/ShortDate),aggregate(PeriodLength with sum as PeriodLength))&$orderby=WorklogDate/ShortDate desc");
var uri = new Uri(sevenpaceAPIUrl + "/workLogsWorkItems?$apply=" +
"groupby((User/Name,WorkItem/System_TeamProject,WorkItem/System_WorkItemType,WorkItem/System_Id,WorklogDate/ShortDate)," +
"aggregate(PeriodLength with sum as PeriodLength))" +
"&Timestamp ge 2022-04-01T00:00:00Z &Timestamp lt 2022-06-30T00:00:00Z");
//var uri = new Uri(sevenpaceAPIUrl + "/workItemsHierarchy/?$select=System_Id,System_WorkItemType,System_TeamProject,System_Title,TrackedTotal, TrackedItself");
//var uri = new Uri(sevenpaceAPIUrl + "/workLogsWorkItems?$apply=groupby((User/Name,WorkItem/System_TeamProject,WorklogDate/ShortDate),aggregate(PeriodLength with sum as PeriodLength))&$orderby=WorklogDate/ShortDate desc");
//var uri = new Uri(sevenpaceAPIUrl + "/worklogsFilter=Timestamp ge 2022-06-01T00:00:00Z and Timestamp lt 2022-06-30T00:00:00Z");
// Create a new Credential
var credentialsCache = new CredentialCache();
credentialsCache.Add(uri, "Negotiate", new NetworkCredential(@"username", "Password", "Domain"));
var handler = new HttpClientHandler() { Credentials = credentialsCache, PreAuthenticate = true };
var httpClient = new HttpClient(handler) { Timeout = new TimeSpan(1, 0, 10) };
var response = await httpClient.GetAsync(uri);
var result = await response.Content.ReadAsStringAsync();
Please sign in to leave a comment.
Comments
1 comment