44using  System ; 
55using  System . IO ; 
66using  System . Linq ; 
7- using  System . Net . Http ; 
87using  System . Security ; 
98using  System . Text ; 
109using  System . Threading ; 
@@ -21,8 +20,6 @@ namespace Microsoft.OpenApi.Reader
2120    /// </summary> 
2221    public  static class  OpenApiModelFactory 
2322    { 
24-         private  static readonly  HttpClient  _httpClient  =  new ( ) ; 
25- 
2623        /// <summary> 
2724        /// Loads the input stream and parses it into an Open API document. 
2825        /// </summary> 
@@ -81,7 +78,8 @@ public static T Load<T>(MemoryStream input, OpenApiSpecVersion version, string f
8178        /// <returns></returns> 
8279        public  static async  Task < ReadResult >  LoadAsync ( string  url ,  OpenApiReaderSettings  settings  =  null ,  CancellationToken  token  =  default ) 
8380        { 
84-             var  ( stream ,  format )  =  await  RetrieveStreamAndFormatAsync ( url ,  token ) . ConfigureAwait ( false ) ; 
81+             settings  ??=  DefaultReaderSettings . Value ; 
82+             var  ( stream ,  format )  =  await  RetrieveStreamAndFormatAsync ( url ,  settings ,  token ) . ConfigureAwait ( false ) ; 
8583            return  await  LoadAsync ( stream ,  format ,  settings ,  token ) . ConfigureAwait ( false ) ; 
8684        } 
8785
@@ -98,7 +96,8 @@ public static async Task<ReadResult> LoadAsync(string url, OpenApiReaderSettings
9896        /// <returns>The OpenAPI element.</returns> 
9997        public  static async  Task < T >  LoadAsync < T > ( string  url ,  OpenApiSpecVersion  version ,  OpenApiDocument  openApiDocument ,  OpenApiReaderSettings  settings  =  null ,  CancellationToken  token  =  default )  where  T  :  IOpenApiElement 
10098        { 
101-             var  ( stream ,  format )  =  await  RetrieveStreamAndFormatAsync ( url ,  token ) . ConfigureAwait ( false ) ; 
99+             settings  ??=  DefaultReaderSettings . Value ; 
100+             var  ( stream ,  format )  =  await  RetrieveStreamAndFormatAsync ( url ,  settings ,  token ) . ConfigureAwait ( false ) ; 
102101            return  await  LoadAsync < T > ( stream ,  version ,  openApiDocument ,  format ,  settings ,  token ) ; 
103102        } 
104103
@@ -286,7 +285,7 @@ private static ReadResult InternalLoad(MemoryStream input, string format, OpenAp
286285            return  readResult ; 
287286        } 
288287
289-         private  static async  Task < ( Stream ,  string ) >  RetrieveStreamAndFormatAsync ( string  url ,  CancellationToken  token  =  default ) 
288+         private  static async  Task < ( Stream ,  string ) >  RetrieveStreamAndFormatAsync ( string  url ,  OpenApiReaderSettings   settings ,   CancellationToken  token  =  default ) 
290289        { 
291290            if  ( ! string . IsNullOrEmpty ( url ) ) 
292291            { 
@@ -296,7 +295,7 @@ private static ReadResult InternalLoad(MemoryStream input, string format, OpenAp
296295                if  ( url . StartsWith ( "http" ,  StringComparison . OrdinalIgnoreCase ) 
297296                    ||  url . StartsWith ( "https" ,  StringComparison . OrdinalIgnoreCase ) ) 
298297                { 
299-                     var  response  =  await  _httpClient . GetAsync ( url ,  token ) . ConfigureAwait ( false ) ; 
298+                     var  response  =  await  settings . HttpClient . GetAsync ( url ,  token ) . ConfigureAwait ( false ) ; 
300299                    var  mediaType  =  response . Content . Headers . ContentType . MediaType ; 
301300                    var  contentType  =  mediaType . Split ( ";" . ToCharArray ( ) ,  StringSplitOptions . RemoveEmptyEntries ) [ 0 ] ; 
302301                    format  =  contentType . Split ( '/' ) . Last ( ) . Split ( '+' ) . Last ( ) . Split ( '-' ) . Last ( ) ; 
0 commit comments