1010using Microsoft . Graph . Cli . Utils ;
1111using Microsoft . Kiota . Authentication . Azure ;
1212using Microsoft . Kiota . Http . HttpClientLibrary ;
13+ using Microsoft . Kiota . Http . HttpClientLibrary . Middleware ;
14+ using Microsoft . Kiota . Http . HttpClientLibrary . Middleware . Options ;
1315using System . CommandLine ;
1416using System . CommandLine . Builder ;
1517using System . CommandLine . Hosting ;
1618using System . CommandLine . Parsing ;
1719using System . IO ;
20+ using System . Linq ;
1821using System . Net . Http ;
1922using System . Reflection ;
2023using System . Threading . Tasks ;
@@ -23,7 +26,7 @@ namespace Microsoft.Graph.Cli
2326{
2427 class Program
2528 {
26- const string SdkVersionHeaderValueFormatString = "{0}-cli- {1}.{2}.{3}" ;
29+ const string SdkVersionHeaderValueFormatString = "{0}-cli/ {1}.{2}.{3}" ;
2730
2831 static async Task < int > Main ( string [ ] args )
2932 {
@@ -39,16 +42,28 @@ static async Task<int> Main(string[] args)
3942
4043 var credential = await authServiceFactory . GetTokenCredentialAsync ( authStrategy , authSettings . TenantId , authSettings . ClientId ) ;
4144 var authProvider = new AzureIdentityAuthenticationProvider ( credential ) ;
42- var httpClient = new HttpClient ( ) ;
45+ var defaultHandlers = KiotaClientFactory . CreateDefaultHandlers ( ) ;
46+
4347 var assemblyVersion = Assembly . GetExecutingAssembly ( ) . GetName ( ) . Version ;
4448 var sdkVersionHeaderValue = string . Format (
4549 SdkVersionHeaderValueFormatString ,
4650 "graph" ,
4751 assemblyVersion . Major ,
4852 assemblyVersion . Minor ,
4953 assemblyVersion . Build ) ;
50- httpClient . DefaultRequestHeaders . Add ( "SdkVersion" , sdkVersionHeaderValue ) ;
51- var core = new HttpClientRequestAdapter ( authProvider , null , null , httpClient ) ;
54+
55+ var telemetryHandlerOption = new TelemetryHandlerOption {
56+ TelemetryConfigurator = ( request ) => {
57+ request . Headers . Add ( "SdkVersion" , sdkVersionHeaderValue ) ;
58+ return request ;
59+ }
60+ } ;
61+ var telemetryHandler = new TelemetryHandler ( telemetryHandlerOption ) ;
62+ defaultHandlers . Add ( telemetryHandler ) ;
63+ var finalHandler = KiotaClientFactory . ChainHandlersCollectionAndGetFirstLink ( KiotaClientFactory . GetDefaultHttpMessageHandler ( ) , defaultHandlers . ToArray ( ) ) ;
64+
65+ using var httpClient = KiotaClientFactory . Create ( finalHandler ) ;
66+ var core = new HttpClientRequestAdapter ( authProvider , httpClient : httpClient ) ;
5267 var client = new GraphClient ( core ) ;
5368 var builder = BuildCommandLine ( client ) ;
5469
0 commit comments