Bumped package version to 1.5.9, exposed a parameter in the init method to allow a custom message handler to be used with the client for C#.

This commit is contained in:
2023-06-01 06:29:39 -07:00
parent 22ff3c1312
commit efd744974d
4 changed files with 129 additions and 40 deletions

View File

@@ -17,7 +17,7 @@
<AssemblyName>MontoyaTech.Rest.Net</AssemblyName>
<RootNamespace>MontoyaTech.Rest.Net</RootNamespace>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<Version>1.5.8</Version>
<Version>1.5.9</Version>
<PackageReleaseNotes></PackageReleaseNotes>
<PackageIcon>Logo_Symbol_Black_Outline.png</PackageIcon>
</PropertyGroup>

View File

@@ -56,9 +56,9 @@ namespace MontoyaTech.Rest.Net
//Create the client handler field
if (this.StaticCode)
writer.WriteBreak().WriteLine("public static HttpClientHandler ClientHandler;");
writer.WriteBreak().WriteLine("public static HttpMessageHandler MessageHandler;");
else
writer.WriteBreak().WriteLine("public HttpClientHandler ClientHandler;");
writer.WriteBreak().WriteLine("public HttpMessageHandler MessageHandler;");
//Create the http client field
if (this.StaticCode)
@@ -74,7 +74,7 @@ namespace MontoyaTech.Rest.Net
//Create the client constructor or init method
if (this.StaticCode)
{
writer.WriteBreak().WriteLine("public static void Init(string baseUrl)").WriteLine("{").Indent();
writer.WriteBreak().WriteLine("public static void Init(string baseUrl, HttpMessageHandler handler = null)").WriteLine("{").Indent();
//Make sure the base url isn't null or whitespace
writer.WriteBreak().WriteLine("if (string.IsNullOrWhiteSpace(baseUrl))");
@@ -91,16 +91,22 @@ namespace MontoyaTech.Rest.Net
writer.WriteBreak().WriteLine($"{this.ClientName}.CookieContainer = new CookieContainer();");
//Init the client handler
writer.WriteBreak().WriteLine($"{this.ClientName}.ClientHandler = new HttpClientHandler()");
writer.WriteBreak().WriteLine("if (handler == null)");
writer.WriteLine("{").Indent();
writer.WriteLine($"handler = new HttpClientHandler()");
writer.WriteLine("{").Indent();
writer.WriteLine("AllowAutoRedirect = true,");
writer.WriteLine("UseCookies = true,");
writer.WriteLine($"CookieContainer = {this.ClientName}.CookieContainer,");
writer.WriteLine("AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate");
writer.Outdent().WriteLine("};");
writer.Outdent().WriteLine("}");
//Store the message handler
writer.WriteBreak().WriteLine($"{this.ClientName}.MessageHandler = handler;");
//Init the http client
writer.WriteBreak().WriteLine($"{this.ClientName}.HttpClient = new HttpClient({this.ClientName}.ClientHandler);");
writer.WriteBreak().WriteLine($"{this.ClientName}.HttpClient = new HttpClient(handler);");
writer.WriteBreak().WriteLine(@$"{this.ClientName}.HttpClient.DefaultRequestHeaders.Add(""Accept"", ""*/*"");");
writer.WriteBreak().WriteLine(@$"{this.ClientName}.HttpClient.DefaultRequestHeaders.Add(""Connection"", ""keep-alive"");");
writer.WriteBreak().WriteLine(@$"{this.ClientName}.HttpClient.DefaultRequestHeaders.Add(""Accept-Encoding"", ""identity"");");
@@ -109,7 +115,7 @@ namespace MontoyaTech.Rest.Net
}
else
{
writer.WriteBreak().WriteLine("public Client(string baseUrl)").WriteLine("{").Indent();
writer.WriteBreak().WriteLine("public Client(string baseUrl, HttpMessageHandler handler = null)").WriteLine("{").Indent();
//Make sure the base url isn't null or whitespace
writer.WriteBreak().WriteLine("if (string.IsNullOrWhiteSpace(baseUrl))");
@@ -126,16 +132,22 @@ namespace MontoyaTech.Rest.Net
writer.WriteBreak().WriteLine("this.CookieContainer = new CookieContainer();");
//Init the client handler
writer.WriteBreak().WriteLine("this.ClientHandler = new HttpClientHandler()");
writer.WriteBreak().WriteLine("if (handler == null)");
writer.WriteLine("{").Indent();
writer.WriteLine("handler = new HttpClientHandler()");
writer.WriteLine("{").Indent();
writer.WriteLine("AllowAutoRedirect = true,");
writer.WriteLine("UseCookies = true,");
writer.WriteLine("CookieContainer = this.CookieContainer,");
writer.WriteLine("AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate");
writer.Outdent().WriteLine("};");
writer.Outdent().WriteLine("}");
//Store the message handler
writer.WriteBreak().WriteLine("this.MessageHandler = handler;");
//Init the http client
writer.WriteBreak().WriteLine("this.HttpClient = new HttpClient(this.ClientHandler);");
writer.WriteBreak().WriteLine("this.HttpClient = new HttpClient(handler);");
writer.WriteBreak().WriteLine(@"this.HttpClient.DefaultRequestHeaders.Add(""Accept"", ""*/*"");");
writer.WriteBreak().WriteLine(@"this.HttpClient.DefaultRequestHeaders.Add(""Connection"", ""keep-alive"");");
writer.WriteBreak().WriteLine(@"this.HttpClient.DefaultRequestHeaders.Add(""Accept-Encoding"", ""identity"");");