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