Bumped package version to 1.8.0. Added support for automatic gzip decompression in HttpListenerRequestExtensions. Added a new compress parameter for json requests in client generated code that auto compresses the json if set. Fixed a few bugs and cleaned up code.
This commit is contained in:
		| @@ -1,18 +1,14 @@ | |||||||
| //Generated using MontoyaTech.Rest.Net | //Generated using MontoyaTech.Rest.Net | ||||||
| using System; |  | ||||||
| using System.Net; |  | ||||||
| using System.Net.Http; |  | ||||||
| using Newtonsoft.Json; |  | ||||||
|  |  | ||||||
| public class Client | public class Client | ||||||
| { | { | ||||||
|     public string BaseUrl; |     public string BaseUrl; | ||||||
|  |  | ||||||
|     public CookieContainer CookieContainer; |     public System.Net.CookieContainer CookieContainer; | ||||||
|  |  | ||||||
|     public HttpMessageHandler MessageHandler; |     public System.Net.Http.HttpMessageHandler MessageHandler; | ||||||
|  |  | ||||||
|     public HttpClient HttpClient; |     public System.Net.Http.HttpClient HttpClient; | ||||||
|  |  | ||||||
|     public TestApi Test; |     public TestApi Test; | ||||||
|  |  | ||||||
| @@ -20,32 +16,34 @@ public class Client | |||||||
|  |  | ||||||
|     public StreamApi Stream; |     public StreamApi Stream; | ||||||
|  |  | ||||||
|     public Client(string baseUrl, HttpMessageHandler handler = null) |     public FormApi Form; | ||||||
|  |  | ||||||
|  |     public Client(string baseUrl, System.Net.Http.HttpMessageHandler handler = null) | ||||||
|     { |     { | ||||||
|         if (string.IsNullOrWhiteSpace(baseUrl)) |         if (string.IsNullOrWhiteSpace(baseUrl)) | ||||||
|             throw new ArgumentException("baseUrl must not be null or whitespace."); |             throw new System.ArgumentException("baseUrl must not be null or whitespace."); | ||||||
|  |  | ||||||
|         if (baseUrl.EndsWith('/')) |         if (baseUrl.EndsWith('/')) | ||||||
|             baseUrl = baseUrl.Substring(0, baseUrl.Length - 1); |             baseUrl = baseUrl.Substring(0, baseUrl.Length - 1); | ||||||
|  |  | ||||||
|         this.BaseUrl = baseUrl; |         this.BaseUrl = baseUrl; | ||||||
|  |  | ||||||
|         this.CookieContainer = new CookieContainer(); |         this.CookieContainer = new System.Net.CookieContainer(); | ||||||
|  |  | ||||||
|         if (handler == null) |         if (handler == null) | ||||||
|         { |         { | ||||||
|             handler = new HttpClientHandler() |             handler = new System.Net.Http.HttpClientHandler() | ||||||
|             { |             { | ||||||
|                 AllowAutoRedirect = true, |                 AllowAutoRedirect = true, | ||||||
|                 UseCookies = true, |                 UseCookies = true, | ||||||
|                 CookieContainer = this.CookieContainer, |                 CookieContainer = this.CookieContainer, | ||||||
|                 AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate |                 AutomaticDecompression = System.Net.DecompressionMethods.GZip | System.Net.DecompressionMethods.Deflate | ||||||
|             }; |             }; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         this.MessageHandler = handler; |         this.MessageHandler = handler; | ||||||
|  |  | ||||||
|         this.HttpClient = new HttpClient(handler); |         this.HttpClient = new System.Net.Http.HttpClient(handler); | ||||||
|  |  | ||||||
|         this.HttpClient.DefaultRequestHeaders.Add("Accept", "*/*"); |         this.HttpClient.DefaultRequestHeaders.Add("Accept", "*/*"); | ||||||
|  |  | ||||||
| @@ -58,6 +56,8 @@ public class Client | |||||||
|         this.Auth = new AuthApi(this); |         this.Auth = new AuthApi(this); | ||||||
|  |  | ||||||
|         this.Stream = new StreamApi(this); |         this.Stream = new StreamApi(this); | ||||||
|  |  | ||||||
|  |         this.Form = new FormApi(this); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public class TestApi |     public class TestApi | ||||||
| @@ -71,9 +71,9 @@ public class Client | |||||||
|  |  | ||||||
|         public string Status() |         public string Status() | ||||||
|         { |         { | ||||||
|             var message = new HttpRequestMessage(HttpMethod.Get, $"{this.Client.BaseUrl}/status"); |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{this.Client.BaseUrl}/status"); | ||||||
|  |  | ||||||
|             var response = this.Client.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead); |             var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|             if (response.IsSuccessStatusCode) |             if (response.IsSuccessStatusCode) | ||||||
|             { |             { | ||||||
| @@ -82,19 +82,19 @@ public class Client | |||||||
|                 if (string.IsNullOrEmpty(content)) |                 if (string.IsNullOrEmpty(content)) | ||||||
|                     return default; |                     return default; | ||||||
|  |  | ||||||
|                 return JsonConvert.DeserializeObject<string>(content); |                 return Newtonsoft.Json.JsonConvert.DeserializeObject<string>(content); | ||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|                 throw new Exception("Unexpected Http Response StatusCode:" + response.StatusCode); |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public string Add(double a, double b) |         public string Add(double a, double b) | ||||||
|         { |         { | ||||||
|             var message = new HttpRequestMessage(HttpMethod.Post, $"{this.Client.BaseUrl}/add/{a}/{b}"); |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, $"{this.Client.BaseUrl}/add/{a}/{b}"); | ||||||
|  |  | ||||||
|             var response = this.Client.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead); |             var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|             if (response.IsSuccessStatusCode) |             if (response.IsSuccessStatusCode) | ||||||
|             { |             { | ||||||
| @@ -103,19 +103,19 @@ public class Client | |||||||
|                 if (string.IsNullOrEmpty(content)) |                 if (string.IsNullOrEmpty(content)) | ||||||
|                     return default; |                     return default; | ||||||
|  |  | ||||||
|                 return JsonConvert.DeserializeObject<string>(content); |                 return Newtonsoft.Json.JsonConvert.DeserializeObject<string>(content); | ||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|                 throw new Exception("Unexpected Http Response StatusCode:" + response.StatusCode); |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public string Compress() |         public string Compress() | ||||||
|         { |         { | ||||||
|             var message = new HttpRequestMessage(HttpMethod.Get, $"{this.Client.BaseUrl}/compress"); |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{this.Client.BaseUrl}/compress"); | ||||||
|  |  | ||||||
|             var response = this.Client.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead); |             var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|             if (response.IsSuccessStatusCode) |             if (response.IsSuccessStatusCode) | ||||||
|             { |             { | ||||||
| @@ -124,19 +124,19 @@ public class Client | |||||||
|                 if (string.IsNullOrEmpty(content)) |                 if (string.IsNullOrEmpty(content)) | ||||||
|                     return default; |                     return default; | ||||||
|  |  | ||||||
|                 return JsonConvert.DeserializeObject<string>(content); |                 return Newtonsoft.Json.JsonConvert.DeserializeObject<string>(content); | ||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|                 throw new Exception("Unexpected Http Response StatusCode:" + response.StatusCode); |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public string CompressFile() |         public string CompressFile() | ||||||
|         { |         { | ||||||
|             var message = new HttpRequestMessage(HttpMethod.Get, $"{this.Client.BaseUrl}/file/compress"); |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{this.Client.BaseUrl}/file/compress"); | ||||||
|  |  | ||||||
|             var response = this.Client.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead); |             var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|             if (response.IsSuccessStatusCode) |             if (response.IsSuccessStatusCode) | ||||||
|             { |             { | ||||||
| @@ -145,11 +145,11 @@ public class Client | |||||||
|                 if (string.IsNullOrEmpty(content)) |                 if (string.IsNullOrEmpty(content)) | ||||||
|                     return default; |                     return default; | ||||||
|  |  | ||||||
|                 return JsonConvert.DeserializeObject<string>(content); |                 return Newtonsoft.Json.JsonConvert.DeserializeObject<string>(content); | ||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|                 throw new Exception("Unexpected Http Response StatusCode:" + response.StatusCode); |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| @@ -165,9 +165,9 @@ public class Client | |||||||
|  |  | ||||||
|         public bool UserExists(string name) |         public bool UserExists(string name) | ||||||
|         { |         { | ||||||
|             var message = new HttpRequestMessage(HttpMethod.Get, $"{this.Client.BaseUrl}/auth/{name}"); |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{this.Client.BaseUrl}/auth/{name}"); | ||||||
|  |  | ||||||
|             var response = this.Client.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead); |             var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|             if (response.IsSuccessStatusCode) |             if (response.IsSuccessStatusCode) | ||||||
|             { |             { | ||||||
| @@ -180,27 +180,47 @@ public class Client | |||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|                 throw new Exception("Unexpected Http Response StatusCode:" + response.StatusCode); |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public void Signup(UserDto request) |         public void Signup(UserDto request, bool compress = false) | ||||||
|         { |         { | ||||||
|             var message = new HttpRequestMessage(HttpMethod.Post, $"{this.Client.BaseUrl}/auth/signup"); |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, $"{this.Client.BaseUrl}/auth/signup"); | ||||||
|  |  | ||||||
|             message.Content = new StringContent(JsonConvert.SerializeObject(request)); |             if (compress) | ||||||
|  |             { | ||||||
|  |                 using (var uncompressedStream = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(request)))) | ||||||
|  |                 { | ||||||
|  |                     using (var compressedStream = new System.IO.MemoryStream()) | ||||||
|  |                     { | ||||||
|  |                         using (var gzipStream = new System.IO.Compression.GZipStream(compressedStream, System.IO.Compression.CompressionMode.Compress, true)) | ||||||
|  |                             uncompressedStream.CopyTo(gzipStream); | ||||||
|  |  | ||||||
|             var response = this.Client.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead); |                         message.Content = new System.Net.Http.ByteArrayContent(compressedStream.ToArray()); | ||||||
|  |                         message.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(System.Net.Mime.MediaTypeNames.Application.Json); | ||||||
|  |                         message.Content.Headers.ContentEncoding.Add("gzip"); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 message.Content = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request)); | ||||||
|  |  | ||||||
|  |                 message.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(System.Net.Mime.MediaTypeNames.Application.Json); | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|             if (!response.IsSuccessStatusCode) |             if (!response.IsSuccessStatusCode) | ||||||
|                 throw new Exception("Unexpected Http Response StatusCode:" + response.StatusCode); |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public UserDto Get() |         public UserDto Get() | ||||||
|         { |         { | ||||||
|             var message = new HttpRequestMessage(HttpMethod.Get, $"{this.Client.BaseUrl}/auth"); |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{this.Client.BaseUrl}/auth/"); | ||||||
|  |  | ||||||
|             var response = this.Client.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead); |             var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|             if (response.IsSuccessStatusCode) |             if (response.IsSuccessStatusCode) | ||||||
|             { |             { | ||||||
| @@ -209,19 +229,40 @@ public class Client | |||||||
|                 if (string.IsNullOrEmpty(content)) |                 if (string.IsNullOrEmpty(content)) | ||||||
|                     return default; |                     return default; | ||||||
|  |  | ||||||
|                 return JsonConvert.DeserializeObject<UserDto>(content); |                 return Newtonsoft.Json.JsonConvert.DeserializeObject<UserDto>(content); | ||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|                 throw new Exception("Unexpected Http Response StatusCode:" + response.StatusCode); |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         public dynamic Dynamic() | ||||||
|  |         { | ||||||
|  |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{this.Client.BaseUrl}/auth/dynamic"); | ||||||
|  |  | ||||||
|  |             var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|  |             if (response.IsSuccessStatusCode) | ||||||
|  |             { | ||||||
|  |                 var content = response.Content.ReadAsStringAsync().GetAwaiter().GetResult(); | ||||||
|  |  | ||||||
|  |                 if (string.IsNullOrEmpty(content)) | ||||||
|  |                     return default; | ||||||
|  |  | ||||||
|  |                 return Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(content); | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public UserRole GetRole() |         public UserRole GetRole() | ||||||
|         { |         { | ||||||
|             var message = new HttpRequestMessage(HttpMethod.Get, $"{this.Client.BaseUrl}/auth/role"); |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{this.Client.BaseUrl}/auth/role"); | ||||||
|  |  | ||||||
|             var response = this.Client.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead); |             var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|             if (response.IsSuccessStatusCode) |             if (response.IsSuccessStatusCode) | ||||||
|             { |             { | ||||||
| @@ -230,11 +271,11 @@ public class Client | |||||||
|                 if (string.IsNullOrEmpty(content)) |                 if (string.IsNullOrEmpty(content)) | ||||||
|                     return default; |                     return default; | ||||||
|  |  | ||||||
|                 return JsonConvert.DeserializeObject<UserRole>(content); |                 return Newtonsoft.Json.JsonConvert.DeserializeObject<UserRole>(content); | ||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|                 throw new Exception("Unexpected Http Response StatusCode:" + response.StatusCode); |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| @@ -248,25 +289,25 @@ public class Client | |||||||
|             this.Client = client; |             this.Client = client; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public void Upload(System.IO.MemoryStream request) |         public void Upload(System.IO.MemoryStream request, bool compress = false) | ||||||
|         { |         { | ||||||
|             var message = new HttpRequestMessage(HttpMethod.Post, $"{this.Client.BaseUrl}/upload"); |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, $"{this.Client.BaseUrl}/upload"); | ||||||
|  |  | ||||||
|             request.Seek(0, System.IO.SeekOrigin.Begin); |             request.Seek(0, System.IO.SeekOrigin.Begin); | ||||||
|  |  | ||||||
|             message.Content = new StreamContent(request); |             message.Content = new System.Net.Http.StreamContent(request); | ||||||
|  |  | ||||||
|             var response = this.Client.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead); |             var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|             if (!response.IsSuccessStatusCode) |             if (!response.IsSuccessStatusCode) | ||||||
|                 throw new Exception("Unexpected Http Response StatusCode:" + response.StatusCode); |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public System.IO.MemoryStream Download() |         public System.IO.MemoryStream Download() | ||||||
|         { |         { | ||||||
|             var message = new HttpRequestMessage(HttpMethod.Get, $"{this.Client.BaseUrl}/download"); |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{this.Client.BaseUrl}/download"); | ||||||
|  |  | ||||||
|             var response = this.Client.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead); |             var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|             if (response.IsSuccessStatusCode) |             if (response.IsSuccessStatusCode) | ||||||
|             { |             { | ||||||
| @@ -278,7 +319,38 @@ public class Client | |||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|                 throw new Exception("Unexpected Http Response StatusCode:" + response.StatusCode); |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public class FormApi | ||||||
|  |     { | ||||||
|  |         public Client Client; | ||||||
|  |  | ||||||
|  |         public FormApi(Client client) | ||||||
|  |         { | ||||||
|  |             this.Client = client; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         public System.Collections.Generic.Dictionary<string, string> FormTest() | ||||||
|  |         { | ||||||
|  |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, $"{this.Client.BaseUrl}/form"); | ||||||
|  |  | ||||||
|  |             var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|  |             if (response.IsSuccessStatusCode) | ||||||
|  |             { | ||||||
|  |                 var content = response.Content.ReadAsStringAsync().GetAwaiter().GetResult(); | ||||||
|  |  | ||||||
|  |                 if (string.IsNullOrEmpty(content)) | ||||||
|  |                     return default; | ||||||
|  |  | ||||||
|  |                 return Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.Dictionary<string, string>>(content); | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -1,45 +1,41 @@ | |||||||
| //Generated using MontoyaTech.Rest.Net | //Generated using MontoyaTech.Rest.Net | ||||||
| using System; |  | ||||||
| using System.Net; |  | ||||||
| using System.Net.Http; |  | ||||||
| using Newtonsoft.Json; |  | ||||||
|  |  | ||||||
| public class StaticClient | public class StaticClient | ||||||
| { | { | ||||||
|     public static string BaseUrl; |     public static string BaseUrl; | ||||||
|  |  | ||||||
|     public static CookieContainer CookieContainer; |     public static System.Net.CookieContainer CookieContainer; | ||||||
|  |  | ||||||
|     public static HttpMessageHandler MessageHandler; |     public static System.Net.Http.HttpMessageHandler MessageHandler; | ||||||
|  |  | ||||||
|     public static HttpClient HttpClient; |     public static System.Net.Http.HttpClient HttpClient; | ||||||
|  |  | ||||||
|     public static void Init(string baseUrl, HttpMessageHandler handler = null) |     public static void Init(string baseUrl, System.Net.Http.HttpMessageHandler handler = null) | ||||||
|     { |     { | ||||||
|         if (string.IsNullOrWhiteSpace(baseUrl)) |         if (string.IsNullOrWhiteSpace(baseUrl)) | ||||||
|             throw new ArgumentException("baseUrl must not be null or whitespace."); |             throw new System.ArgumentException("baseUrl must not be null or whitespace."); | ||||||
|  |  | ||||||
|         if (baseUrl.EndsWith('/')) |         if (baseUrl.EndsWith('/')) | ||||||
|             baseUrl = baseUrl.Substring(0, baseUrl.Length - 1); |             baseUrl = baseUrl.Substring(0, baseUrl.Length - 1); | ||||||
|  |  | ||||||
|         StaticClient.BaseUrl = baseUrl; |         StaticClient.BaseUrl = baseUrl; | ||||||
|  |  | ||||||
|         StaticClient.CookieContainer = new CookieContainer(); |         StaticClient.CookieContainer = new System.Net.CookieContainer(); | ||||||
|  |  | ||||||
|         if (handler == null) |         if (handler == null) | ||||||
|         { |         { | ||||||
|             handler = new HttpClientHandler() |             handler = new System.Net.Http.HttpClientHandler() | ||||||
|             { |             { | ||||||
|                 AllowAutoRedirect = true, |                 AllowAutoRedirect = true, | ||||||
|                 UseCookies = true, |                 UseCookies = true, | ||||||
|                 CookieContainer = StaticClient.CookieContainer, |                 CookieContainer = StaticClient.CookieContainer, | ||||||
|                 AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate |                 AutomaticDecompression = System.Net.DecompressionMethods.GZip | System.Net.DecompressionMethods.Deflate | ||||||
|             }; |             }; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         StaticClient.MessageHandler = handler; |         StaticClient.MessageHandler = handler; | ||||||
|  |  | ||||||
|         StaticClient.HttpClient = new HttpClient(handler); |         StaticClient.HttpClient = new System.Net.Http.HttpClient(handler); | ||||||
|  |  | ||||||
|         StaticClient.HttpClient.DefaultRequestHeaders.Add("Accept", "*/*"); |         StaticClient.HttpClient.DefaultRequestHeaders.Add("Accept", "*/*"); | ||||||
|  |  | ||||||
| @@ -52,9 +48,9 @@ public class StaticClient | |||||||
|     { |     { | ||||||
|         public static string Status() |         public static string Status() | ||||||
|         { |         { | ||||||
|             var message = new HttpRequestMessage(HttpMethod.Get, $"{StaticClient.BaseUrl}/status"); |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{StaticClient.BaseUrl}/status"); | ||||||
|  |  | ||||||
|             var response = StaticClient.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead); |             var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|             if (response.IsSuccessStatusCode) |             if (response.IsSuccessStatusCode) | ||||||
|             { |             { | ||||||
| @@ -63,19 +59,19 @@ public class StaticClient | |||||||
|                 if (string.IsNullOrEmpty(content)) |                 if (string.IsNullOrEmpty(content)) | ||||||
|                     return default; |                     return default; | ||||||
|  |  | ||||||
|                 return JsonConvert.DeserializeObject<string>(content); |                 return Newtonsoft.Json.JsonConvert.DeserializeObject<string>(content); | ||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|                 throw new Exception("Unexpected Http Response StatusCode:" + response.StatusCode); |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public static string Add(double a, double b) |         public static string Add(double a, double b) | ||||||
|         { |         { | ||||||
|             var message = new HttpRequestMessage(HttpMethod.Post, $"{StaticClient.BaseUrl}/add/{a}/{b}"); |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, $"{StaticClient.BaseUrl}/add/{a}/{b}"); | ||||||
|  |  | ||||||
|             var response = StaticClient.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead); |             var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|             if (response.IsSuccessStatusCode) |             if (response.IsSuccessStatusCode) | ||||||
|             { |             { | ||||||
| @@ -84,19 +80,19 @@ public class StaticClient | |||||||
|                 if (string.IsNullOrEmpty(content)) |                 if (string.IsNullOrEmpty(content)) | ||||||
|                     return default; |                     return default; | ||||||
|  |  | ||||||
|                 return JsonConvert.DeserializeObject<string>(content); |                 return Newtonsoft.Json.JsonConvert.DeserializeObject<string>(content); | ||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|                 throw new Exception("Unexpected Http Response StatusCode:" + response.StatusCode); |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public static string Compress() |         public static string Compress() | ||||||
|         { |         { | ||||||
|             var message = new HttpRequestMessage(HttpMethod.Get, $"{StaticClient.BaseUrl}/compress"); |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{StaticClient.BaseUrl}/compress"); | ||||||
|  |  | ||||||
|             var response = StaticClient.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead); |             var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|             if (response.IsSuccessStatusCode) |             if (response.IsSuccessStatusCode) | ||||||
|             { |             { | ||||||
| @@ -105,19 +101,19 @@ public class StaticClient | |||||||
|                 if (string.IsNullOrEmpty(content)) |                 if (string.IsNullOrEmpty(content)) | ||||||
|                     return default; |                     return default; | ||||||
|  |  | ||||||
|                 return JsonConvert.DeserializeObject<string>(content); |                 return Newtonsoft.Json.JsonConvert.DeserializeObject<string>(content); | ||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|                 throw new Exception("Unexpected Http Response StatusCode:" + response.StatusCode); |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public static string CompressFile() |         public static string CompressFile() | ||||||
|         { |         { | ||||||
|             var message = new HttpRequestMessage(HttpMethod.Get, $"{StaticClient.BaseUrl}/file/compress"); |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{StaticClient.BaseUrl}/file/compress"); | ||||||
|  |  | ||||||
|             var response = StaticClient.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead); |             var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|             if (response.IsSuccessStatusCode) |             if (response.IsSuccessStatusCode) | ||||||
|             { |             { | ||||||
| @@ -126,11 +122,11 @@ public class StaticClient | |||||||
|                 if (string.IsNullOrEmpty(content)) |                 if (string.IsNullOrEmpty(content)) | ||||||
|                     return default; |                     return default; | ||||||
|  |  | ||||||
|                 return JsonConvert.DeserializeObject<string>(content); |                 return Newtonsoft.Json.JsonConvert.DeserializeObject<string>(content); | ||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|                 throw new Exception("Unexpected Http Response StatusCode:" + response.StatusCode); |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| @@ -139,9 +135,9 @@ public class StaticClient | |||||||
|     { |     { | ||||||
|         public static bool UserExists(string name) |         public static bool UserExists(string name) | ||||||
|         { |         { | ||||||
|             var message = new HttpRequestMessage(HttpMethod.Get, $"{StaticClient.BaseUrl}/auth/{name}"); |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{StaticClient.BaseUrl}/auth/{name}"); | ||||||
|  |  | ||||||
|             var response = StaticClient.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead); |             var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|             if (response.IsSuccessStatusCode) |             if (response.IsSuccessStatusCode) | ||||||
|             { |             { | ||||||
| @@ -154,27 +150,47 @@ public class StaticClient | |||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|                 throw new Exception("Unexpected Http Response StatusCode:" + response.StatusCode); |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public static void Signup(UserDto request) |         public static void Signup(UserDto request, bool compress = false) | ||||||
|         { |         { | ||||||
|             var message = new HttpRequestMessage(HttpMethod.Post, $"{StaticClient.BaseUrl}/auth/signup"); |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, $"{StaticClient.BaseUrl}/auth/signup"); | ||||||
|  |  | ||||||
|             message.Content = new StringContent(JsonConvert.SerializeObject(request)); |             if (compress) | ||||||
|  |             { | ||||||
|  |                 using (var uncompressedStream = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(request)))) | ||||||
|  |                 { | ||||||
|  |                     using (var compressedStream = new System.IO.MemoryStream()) | ||||||
|  |                     { | ||||||
|  |                         using (var gzipStream = new System.IO.Compression.GZipStream(compressedStream, System.IO.Compression.CompressionMode.Compress, true)) | ||||||
|  |                             uncompressedStream.CopyTo(gzipStream); | ||||||
|  |  | ||||||
|             var response = StaticClient.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead); |                         message.Content = new System.Net.Http.ByteArrayContent(compressedStream.ToArray()); | ||||||
|  |                         message.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(System.Net.Mime.MediaTypeNames.Application.Json); | ||||||
|  |                         message.Content.Headers.ContentEncoding.Add("gzip"); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 message.Content = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request)); | ||||||
|  |  | ||||||
|  |                 message.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(System.Net.Mime.MediaTypeNames.Application.Json); | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|             if (!response.IsSuccessStatusCode) |             if (!response.IsSuccessStatusCode) | ||||||
|                 throw new Exception("Unexpected Http Response StatusCode:" + response.StatusCode); |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public static UserDto Get() |         public static UserDto Get() | ||||||
|         { |         { | ||||||
|             var message = new HttpRequestMessage(HttpMethod.Get, $"{StaticClient.BaseUrl}/auth"); |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{StaticClient.BaseUrl}/auth/"); | ||||||
|  |  | ||||||
|             var response = StaticClient.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead); |             var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|             if (response.IsSuccessStatusCode) |             if (response.IsSuccessStatusCode) | ||||||
|             { |             { | ||||||
| @@ -183,19 +199,40 @@ public class StaticClient | |||||||
|                 if (string.IsNullOrEmpty(content)) |                 if (string.IsNullOrEmpty(content)) | ||||||
|                     return default; |                     return default; | ||||||
|  |  | ||||||
|                 return JsonConvert.DeserializeObject<UserDto>(content); |                 return Newtonsoft.Json.JsonConvert.DeserializeObject<UserDto>(content); | ||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|                 throw new Exception("Unexpected Http Response StatusCode:" + response.StatusCode); |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         public static dynamic Dynamic() | ||||||
|  |         { | ||||||
|  |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{StaticClient.BaseUrl}/auth/dynamic"); | ||||||
|  |  | ||||||
|  |             var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|  |             if (response.IsSuccessStatusCode) | ||||||
|  |             { | ||||||
|  |                 var content = response.Content.ReadAsStringAsync().GetAwaiter().GetResult(); | ||||||
|  |  | ||||||
|  |                 if (string.IsNullOrEmpty(content)) | ||||||
|  |                     return default; | ||||||
|  |  | ||||||
|  |                 return Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(content); | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public static UserRole GetRole() |         public static UserRole GetRole() | ||||||
|         { |         { | ||||||
|             var message = new HttpRequestMessage(HttpMethod.Get, $"{StaticClient.BaseUrl}/auth/role"); |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{StaticClient.BaseUrl}/auth/role"); | ||||||
|  |  | ||||||
|             var response = StaticClient.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead); |             var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|             if (response.IsSuccessStatusCode) |             if (response.IsSuccessStatusCode) | ||||||
|             { |             { | ||||||
| @@ -204,36 +241,36 @@ public class StaticClient | |||||||
|                 if (string.IsNullOrEmpty(content)) |                 if (string.IsNullOrEmpty(content)) | ||||||
|                     return default; |                     return default; | ||||||
|  |  | ||||||
|                 return JsonConvert.DeserializeObject<UserRole>(content); |                 return Newtonsoft.Json.JsonConvert.DeserializeObject<UserRole>(content); | ||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|                 throw new Exception("Unexpected Http Response StatusCode:" + response.StatusCode); |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public class Stream |     public class Stream | ||||||
|     { |     { | ||||||
|         public static void Upload(System.IO.MemoryStream request) |         public static void Upload(System.IO.MemoryStream request, bool compress = false) | ||||||
|         { |         { | ||||||
|             var message = new HttpRequestMessage(HttpMethod.Post, $"{StaticClient.BaseUrl}/upload"); |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, $"{StaticClient.BaseUrl}/upload"); | ||||||
|  |  | ||||||
|             request.Seek(0, System.IO.SeekOrigin.Begin); |             request.Seek(0, System.IO.SeekOrigin.Begin); | ||||||
|  |  | ||||||
|             message.Content = new StreamContent(request); |             message.Content = new System.Net.Http.StreamContent(request); | ||||||
|  |  | ||||||
|             var response = StaticClient.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead); |             var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|             if (!response.IsSuccessStatusCode) |             if (!response.IsSuccessStatusCode) | ||||||
|                 throw new Exception("Unexpected Http Response StatusCode:" + response.StatusCode); |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public static System.IO.MemoryStream Download() |         public static System.IO.MemoryStream Download() | ||||||
|         { |         { | ||||||
|             var message = new HttpRequestMessage(HttpMethod.Get, $"{StaticClient.BaseUrl}/download"); |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, $"{StaticClient.BaseUrl}/download"); | ||||||
|  |  | ||||||
|             var response = StaticClient.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead); |             var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|             if (response.IsSuccessStatusCode) |             if (response.IsSuccessStatusCode) | ||||||
|             { |             { | ||||||
| @@ -245,7 +282,31 @@ public class StaticClient | |||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|                 throw new Exception("Unexpected Http Response StatusCode:" + response.StatusCode); |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public class Form | ||||||
|  |     { | ||||||
|  |         public static System.Collections.Generic.Dictionary<string, string> FormTest() | ||||||
|  |         { | ||||||
|  |             var message = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, $"{StaticClient.BaseUrl}/form"); | ||||||
|  |  | ||||||
|  |             var response = StaticClient.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead); | ||||||
|  |  | ||||||
|  |             if (response.IsSuccessStatusCode) | ||||||
|  |             { | ||||||
|  |                 var content = response.Content.ReadAsStringAsync().GetAwaiter().GetResult(); | ||||||
|  |  | ||||||
|  |                 if (string.IsNullOrEmpty(content)) | ||||||
|  |                     return default; | ||||||
|  |  | ||||||
|  |                 return Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.Dictionary<string, string>>(content); | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 throw new System.Exception("Unexpected Http Response StatusCode:" + response.StatusCode); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -6,6 +6,7 @@ using System.Text; | |||||||
| using System.Threading.Tasks; | using System.Threading.Tasks; | ||||||
| using System.IO; | using System.IO; | ||||||
| using Newtonsoft.Json; | using Newtonsoft.Json; | ||||||
|  | using System.IO.Compression; | ||||||
|  |  | ||||||
| namespace MontoyaTech.Rest.Net | namespace MontoyaTech.Rest.Net | ||||||
| { | { | ||||||
| @@ -22,11 +23,22 @@ namespace MontoyaTech.Rest.Net | |||||||
|         public static string ReadAsString(this HttpListenerRequest request) |         public static string ReadAsString(this HttpListenerRequest request) | ||||||
|         { |         { | ||||||
|             try |             try | ||||||
|  |             { | ||||||
|  |                 //If the request has been compressed, automatically handle it. | ||||||
|  |                 if (request.Headers["Content-Encoding"] == "gzip") | ||||||
|  |                 { | ||||||
|  |                     using (var inputStream = request.InputStream) | ||||||
|  |                     using (var gzipStream = new GZipStream(inputStream, CompressionMode.Decompress, true)) | ||||||
|  |                     using (var stream = new StreamReader(gzipStream)) | ||||||
|  |                         return stream.ReadToEnd(); | ||||||
|  |                 } | ||||||
|  |                 else | ||||||
|                 { |                 { | ||||||
|                     using (var input = request.InputStream) |                     using (var input = request.InputStream) | ||||||
|                     using (var stream = new StreamReader(input)) |                     using (var stream = new StreamReader(input)) | ||||||
|                         return stream.ReadToEnd(); |                         return stream.ReadToEnd(); | ||||||
|                 } |                 } | ||||||
|  |             } | ||||||
|             catch |             catch | ||||||
|             { |             { | ||||||
|                 return ""; |                 return ""; | ||||||
| @@ -43,10 +55,21 @@ namespace MontoyaTech.Rest.Net | |||||||
|         { |         { | ||||||
|             try |             try | ||||||
|             { |             { | ||||||
|                 using (var input = request.InputStream) |                 //If the request has been compressed, automatically handle it. | ||||||
|                     using (var stream = new StreamReader(input)) |                 if (request.Headers["Content-Encoding"] == "gzip") | ||||||
|  |                 { | ||||||
|  |                     using (var inputStream = request.InputStream) | ||||||
|  |                     using (var gzipStream = new GZipStream(inputStream, CompressionMode.Decompress, true)) | ||||||
|  |                     using (var stream = new StreamReader(gzipStream)) | ||||||
|                         return JsonConvert.DeserializeObject<T>(stream.ReadToEnd()); |                         return JsonConvert.DeserializeObject<T>(stream.ReadToEnd()); | ||||||
|                 } |                 } | ||||||
|  |                 else | ||||||
|  |                 { | ||||||
|  |                     using (var inputStream = request.InputStream) | ||||||
|  |                     using (var stream = new StreamReader(inputStream)) | ||||||
|  |                         return JsonConvert.DeserializeObject<T>(stream.ReadToEnd()); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|             catch |             catch | ||||||
|             { |             { | ||||||
|                 return default(T); |                 return default(T); | ||||||
| @@ -61,6 +84,24 @@ namespace MontoyaTech.Rest.Net | |||||||
|         public static byte[] ReadAsBytes(this HttpListenerRequest request) |         public static byte[] ReadAsBytes(this HttpListenerRequest request) | ||||||
|         { |         { | ||||||
|             try |             try | ||||||
|  |             { | ||||||
|  |                 //If the request has been compressed, automatically handle it. | ||||||
|  |                 if (request.Headers["Content-Encoding"] == "gzip") | ||||||
|  |                 { | ||||||
|  |                     using (var inputStream = request.InputStream) | ||||||
|  |                     { | ||||||
|  |                         using (var gzipStream = new GZipStream(inputStream, CompressionMode.Decompress, true)) | ||||||
|  |                         { | ||||||
|  |                             using (var memoryStream = new MemoryStream()) | ||||||
|  |                             { | ||||||
|  |                                 gzipStream.CopyTo(memoryStream); | ||||||
|  |  | ||||||
|  |                                 return memoryStream.ToArray(); | ||||||
|  |                             } | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |                 else | ||||||
|                 { |                 { | ||||||
|                     using (var input = request.InputStream) |                     using (var input = request.InputStream) | ||||||
|                     { |                     { | ||||||
| @@ -71,6 +112,7 @@ namespace MontoyaTech.Rest.Net | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             } | ||||||
|             catch |             catch | ||||||
|             { |             { | ||||||
|                 return null; |                 return null; | ||||||
| @@ -86,9 +128,23 @@ namespace MontoyaTech.Rest.Net | |||||||
|         public static bool ReadToStream(this HttpListenerRequest request, Stream stream) |         public static bool ReadToStream(this HttpListenerRequest request, Stream stream) | ||||||
|         { |         { | ||||||
|             try |             try | ||||||
|  |             { | ||||||
|  |                 //If the request has been compressed, automatically handle it. | ||||||
|  |                 if (request.Headers["Content-Encoding"] == "gzip") | ||||||
|  |                 { | ||||||
|  |                     using (var inputStream = request.InputStream) | ||||||
|  |                     { | ||||||
|  |                         using (var gzipStream = new GZipStream(inputStream, CompressionMode.Decompress, true)) | ||||||
|  |                         { | ||||||
|  |                             gzipStream.CopyTo(stream); | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |                 else | ||||||
|                 { |                 { | ||||||
|                     using (var input = request.InputStream) |                     using (var input = request.InputStream) | ||||||
|                         input.CopyTo(stream); |                         input.CopyTo(stream); | ||||||
|  |                 } | ||||||
|  |  | ||||||
|                 return true; |                 return true; | ||||||
|             } |             } | ||||||
|   | |||||||
| @@ -82,10 +82,10 @@ namespace MontoyaTech.Rest.Net | |||||||
|  |  | ||||||
|             response.Headers.Add("Content-Encoding", "gzip"); |             response.Headers.Add("Content-Encoding", "gzip"); | ||||||
|  |  | ||||||
|             var bytes = Encoding.UTF8.GetBytes(text); |  | ||||||
|  |  | ||||||
|             using (var memoryStream = new MemoryStream()) |             using (var memoryStream = new MemoryStream()) | ||||||
|             { |             { | ||||||
|  |                 var bytes = Encoding.UTF8.GetBytes(text); | ||||||
|  |  | ||||||
|                 using (var compressedStream = new GZipStream(memoryStream, CompressionMode.Compress, true)) |                 using (var compressedStream = new GZipStream(memoryStream, CompressionMode.Compress, true)) | ||||||
|                     compressedStream.Write(bytes, 0, bytes.Length); |                     compressedStream.Write(bytes, 0, bytes.Length); | ||||||
|  |  | ||||||
| @@ -152,12 +152,13 @@ namespace MontoyaTech.Rest.Net | |||||||
|         public static HttpListenerResponse WithCompressedJson(this HttpListenerResponse response, object obj) |         public static HttpListenerResponse WithCompressedJson(this HttpListenerResponse response, object obj) | ||||||
|         { |         { | ||||||
|             response.ContentType = "application/json; charset=utf-8"; |             response.ContentType = "application/json; charset=utf-8"; | ||||||
|             response.Headers.Add("Content-Encoding", "gzip"); |  | ||||||
|  |  | ||||||
|             var bytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(obj)); |             response.Headers.Add("Content-Encoding", "gzip"); | ||||||
|  |  | ||||||
|             using (var memoryStream = new MemoryStream()) |             using (var memoryStream = new MemoryStream()) | ||||||
|             { |             { | ||||||
|  |                 var bytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(obj)); | ||||||
|  |  | ||||||
|                 using (var compressedStream = new GZipStream(memoryStream, CompressionMode.Compress, true)) |                 using (var compressedStream = new GZipStream(memoryStream, CompressionMode.Compress, true)) | ||||||
|                     compressedStream.Write(bytes, 0, bytes.Length); |                     compressedStream.Write(bytes, 0, bytes.Length); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ | |||||||
|     <AssemblyName>MontoyaTech.Rest.Net</AssemblyName> |     <AssemblyName>MontoyaTech.Rest.Net</AssemblyName> | ||||||
|     <RootNamespace>MontoyaTech.Rest.Net</RootNamespace> |     <RootNamespace>MontoyaTech.Rest.Net</RootNamespace> | ||||||
|     <GenerateDocumentationFile>True</GenerateDocumentationFile> |     <GenerateDocumentationFile>True</GenerateDocumentationFile> | ||||||
|     <Version>1.7.6</Version> |     <Version>1.8.0</Version> | ||||||
|     <PackageReleaseNotes></PackageReleaseNotes> |     <PackageReleaseNotes></PackageReleaseNotes> | ||||||
|     <PackageIcon>Logo_Symbol_Black_Outline.png</PackageIcon> |     <PackageIcon>Logo_Symbol_Black_Outline.png</PackageIcon> | ||||||
|   </PropertyGroup> |   </PropertyGroup> | ||||||
|   | |||||||
| @@ -35,11 +35,6 @@ namespace MontoyaTech.Rest.Net | |||||||
|  |  | ||||||
|             writer.WriteLine("//Generated using MontoyaTech.Rest.Net"); |             writer.WriteLine("//Generated using MontoyaTech.Rest.Net"); | ||||||
|  |  | ||||||
|             writer.WriteLine("using System;"); |  | ||||||
|             writer.WriteLine("using System.Net;"); |  | ||||||
|             writer.WriteLine("using System.Net.Http;"); |  | ||||||
|             writer.WriteLine("using Newtonsoft.Json;"); |  | ||||||
|  |  | ||||||
|             writer.WriteBreak().WriteLine($"public class {this.ClientName}").WriteLine("{").Indent(); |             writer.WriteBreak().WriteLine($"public class {this.ClientName}").WriteLine("{").Indent(); | ||||||
|  |  | ||||||
|             //Create the base url field |             //Create the base url field | ||||||
| @@ -50,21 +45,21 @@ namespace MontoyaTech.Rest.Net | |||||||
|  |  | ||||||
|             //Create the cookie container field |             //Create the cookie container field | ||||||
|             if (this.StaticCode) |             if (this.StaticCode) | ||||||
|                 writer.WriteBreak().WriteLine("public static CookieContainer CookieContainer;"); |                 writer.WriteBreak().WriteLine("public static System.Net.CookieContainer CookieContainer;"); | ||||||
|             else |             else | ||||||
|                 writer.WriteBreak().WriteLine("public CookieContainer CookieContainer;"); |                 writer.WriteBreak().WriteLine("public System.Net.CookieContainer CookieContainer;"); | ||||||
|  |  | ||||||
|             //Create the client handler field |             //Create the client handler field | ||||||
|             if (this.StaticCode) |             if (this.StaticCode) | ||||||
|                 writer.WriteBreak().WriteLine("public static HttpMessageHandler MessageHandler;"); |                 writer.WriteBreak().WriteLine("public static System.Net.Http.HttpMessageHandler MessageHandler;"); | ||||||
|             else |             else | ||||||
|                 writer.WriteBreak().WriteLine("public HttpMessageHandler MessageHandler;"); |                 writer.WriteBreak().WriteLine("public System.Net.Http.HttpMessageHandler MessageHandler;"); | ||||||
|  |  | ||||||
|             //Create the http client field |             //Create the http client field | ||||||
|             if (this.StaticCode) |             if (this.StaticCode) | ||||||
|                 writer.WriteBreak().WriteLine("public static HttpClient HttpClient;"); |                 writer.WriteBreak().WriteLine("public static System.Net.Http.HttpClient HttpClient;"); | ||||||
|             else |             else | ||||||
|                 writer.WriteBreak().WriteLine("public HttpClient HttpClient;"); |                 writer.WriteBreak().WriteLine("public System.Net.Http.HttpClient HttpClient;"); | ||||||
|  |  | ||||||
|             //Create fields foreach route group so they can be accessed. |             //Create fields foreach route group so they can be accessed. | ||||||
|             if (!this.StaticCode) |             if (!this.StaticCode) | ||||||
| @@ -74,11 +69,11 @@ namespace MontoyaTech.Rest.Net | |||||||
|             //Create the client constructor or init method |             //Create the client constructor or init method | ||||||
|             if (this.StaticCode) |             if (this.StaticCode) | ||||||
|             { |             { | ||||||
|                 writer.WriteBreak().WriteLine("public static void Init(string baseUrl, HttpMessageHandler handler = null)").WriteLine("{").Indent(); |                 writer.WriteBreak().WriteLine("public static void Init(string baseUrl, System.Net.Http.HttpMessageHandler handler = null)").WriteLine("{").Indent(); | ||||||
|  |  | ||||||
|                 //Make sure the base url isn't null or whitespace |                 //Make sure the base url isn't null or whitespace | ||||||
|                 writer.WriteBreak().WriteLine("if (string.IsNullOrWhiteSpace(baseUrl))"); |                 writer.WriteBreak().WriteLine("if (string.IsNullOrWhiteSpace(baseUrl))"); | ||||||
|                 writer.Indent().WriteLine(@"throw new ArgumentException(""baseUrl must not be null or whitespace."");").Outdent(); |                 writer.Indent().WriteLine(@"throw new System.ArgumentException(""baseUrl must not be null or whitespace."");").Outdent(); | ||||||
|  |  | ||||||
|                 //If the baseUrl ends with a /, remove it. |                 //If the baseUrl ends with a /, remove it. | ||||||
|                 writer.WriteBreak().WriteLine("if (baseUrl.EndsWith('/'))"); |                 writer.WriteBreak().WriteLine("if (baseUrl.EndsWith('/'))"); | ||||||
| @@ -88,17 +83,17 @@ namespace MontoyaTech.Rest.Net | |||||||
|                 writer.WriteBreak().WriteLine($"{this.ClientName}.BaseUrl = baseUrl;"); |                 writer.WriteBreak().WriteLine($"{this.ClientName}.BaseUrl = baseUrl;"); | ||||||
|  |  | ||||||
|                 //Init the cookie container |                 //Init the cookie container | ||||||
|                 writer.WriteBreak().WriteLine($"{this.ClientName}.CookieContainer = new CookieContainer();"); |                 writer.WriteBreak().WriteLine($"{this.ClientName}.CookieContainer = new System.Net.CookieContainer();"); | ||||||
|  |  | ||||||
|                 //Init the client handler |                 //Init the client handler | ||||||
|                 writer.WriteBreak().WriteLine("if (handler == null)"); |                 writer.WriteBreak().WriteLine("if (handler == null)"); | ||||||
|                 writer.WriteLine("{").Indent(); |                 writer.WriteLine("{").Indent(); | ||||||
|                 writer.WriteLine($"handler = new HttpClientHandler()"); |                 writer.WriteLine($"handler = new System.Net.Http.HttpClientHandler()"); | ||||||
|                 writer.WriteLine("{").Indent(); |                 writer.WriteLine("{").Indent(); | ||||||
|                 writer.WriteLine("AllowAutoRedirect = true,"); |                 writer.WriteLine("AllowAutoRedirect = true,"); | ||||||
|                 writer.WriteLine("UseCookies = true,"); |                 writer.WriteLine("UseCookies = true,"); | ||||||
|                 writer.WriteLine($"CookieContainer = {this.ClientName}.CookieContainer,"); |                 writer.WriteLine($"CookieContainer = {this.ClientName}.CookieContainer,"); | ||||||
|                 writer.WriteLine("AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate"); |                 writer.WriteLine("AutomaticDecompression = System.Net.DecompressionMethods.GZip | System.Net.DecompressionMethods.Deflate"); | ||||||
|                 writer.Outdent().WriteLine("};"); |                 writer.Outdent().WriteLine("};"); | ||||||
|                 writer.Outdent().WriteLine("}"); |                 writer.Outdent().WriteLine("}"); | ||||||
|  |  | ||||||
| @@ -106,7 +101,7 @@ namespace MontoyaTech.Rest.Net | |||||||
|                 writer.WriteBreak().WriteLine($"{this.ClientName}.MessageHandler = handler;"); |                 writer.WriteBreak().WriteLine($"{this.ClientName}.MessageHandler = handler;"); | ||||||
|  |  | ||||||
|                 //Init the http client |                 //Init the http client | ||||||
|                 writer.WriteBreak().WriteLine($"{this.ClientName}.HttpClient = new HttpClient(handler);"); |                 writer.WriteBreak().WriteLine($"{this.ClientName}.HttpClient = new System.Net.Http.HttpClient(handler);"); | ||||||
|                 writer.WriteBreak().WriteLine(@$"{this.ClientName}.HttpClient.DefaultRequestHeaders.Add(""Accept"", ""*/*"");"); |                 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(""Connection"", ""keep-alive"");"); | ||||||
|                 writer.WriteBreak().WriteLine(@$"{this.ClientName}.HttpClient.DefaultRequestHeaders.Add(""Accept-Encoding"", ""identity"");"); |                 writer.WriteBreak().WriteLine(@$"{this.ClientName}.HttpClient.DefaultRequestHeaders.Add(""Accept-Encoding"", ""identity"");"); | ||||||
| @@ -115,11 +110,11 @@ namespace MontoyaTech.Rest.Net | |||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|                 writer.WriteBreak().WriteLine("public Client(string baseUrl, HttpMessageHandler handler = null)").WriteLine("{").Indent(); |                 writer.WriteBreak().WriteLine($"public {this.ClientName}(string baseUrl, System.Net.Http.HttpMessageHandler handler = null)").WriteLine("{").Indent(); | ||||||
|  |  | ||||||
|                 //Make sure the base url isn't null or whitespace |                 //Make sure the base url isn't null or whitespace | ||||||
|                 writer.WriteBreak().WriteLine("if (string.IsNullOrWhiteSpace(baseUrl))"); |                 writer.WriteBreak().WriteLine("if (string.IsNullOrWhiteSpace(baseUrl))"); | ||||||
|                 writer.Indent().WriteLine(@"throw new ArgumentException(""baseUrl must not be null or whitespace."");").Outdent(); |                 writer.Indent().WriteLine(@"throw new System.ArgumentException(""baseUrl must not be null or whitespace."");").Outdent(); | ||||||
|  |  | ||||||
|                 //If the baseUrl ends with a /, remove it. |                 //If the baseUrl ends with a /, remove it. | ||||||
|                 writer.WriteBreak().WriteLine("if (baseUrl.EndsWith('/'))"); |                 writer.WriteBreak().WriteLine("if (baseUrl.EndsWith('/'))"); | ||||||
| @@ -129,17 +124,17 @@ namespace MontoyaTech.Rest.Net | |||||||
|                 writer.WriteBreak().WriteLine("this.BaseUrl = baseUrl;"); |                 writer.WriteBreak().WriteLine("this.BaseUrl = baseUrl;"); | ||||||
|  |  | ||||||
|                 //Init the cookie container |                 //Init the cookie container | ||||||
|                 writer.WriteBreak().WriteLine("this.CookieContainer = new CookieContainer();"); |                 writer.WriteBreak().WriteLine("this.CookieContainer = new System.Net.CookieContainer();"); | ||||||
|  |  | ||||||
|                 //Init the client handler |                 //Init the client handler | ||||||
|                 writer.WriteBreak().WriteLine("if (handler == null)"); |                 writer.WriteBreak().WriteLine("if (handler == null)"); | ||||||
|                 writer.WriteLine("{").Indent(); |                 writer.WriteLine("{").Indent(); | ||||||
|                 writer.WriteLine("handler = new HttpClientHandler()"); |                 writer.WriteLine("handler = new System.Net.Http.HttpClientHandler()"); | ||||||
|                 writer.WriteLine("{").Indent(); |                 writer.WriteLine("{").Indent(); | ||||||
|                 writer.WriteLine("AllowAutoRedirect = true,"); |                 writer.WriteLine("AllowAutoRedirect = true,"); | ||||||
|                 writer.WriteLine("UseCookies = true,"); |                 writer.WriteLine("UseCookies = true,"); | ||||||
|                 writer.WriteLine("CookieContainer = this.CookieContainer,"); |                 writer.WriteLine("CookieContainer = this.CookieContainer,"); | ||||||
|                 writer.WriteLine("AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate"); |                 writer.WriteLine("AutomaticDecompression = System.Net.DecompressionMethods.GZip | System.Net.DecompressionMethods.Deflate"); | ||||||
|                 writer.Outdent().WriteLine("};"); |                 writer.Outdent().WriteLine("};"); | ||||||
|                 writer.Outdent().WriteLine("}"); |                 writer.Outdent().WriteLine("}"); | ||||||
|  |  | ||||||
| @@ -147,7 +142,7 @@ namespace MontoyaTech.Rest.Net | |||||||
|                 writer.WriteBreak().WriteLine("this.MessageHandler = handler;"); |                 writer.WriteBreak().WriteLine("this.MessageHandler = handler;"); | ||||||
|  |  | ||||||
|                 //Init the http client |                 //Init the http client | ||||||
|                 writer.WriteBreak().WriteLine("this.HttpClient = new HttpClient(handler);"); |                 writer.WriteBreak().WriteLine("this.HttpClient = new System.Net.Http.HttpClient(handler);"); | ||||||
|                 writer.WriteBreak().WriteLine(@"this.HttpClient.DefaultRequestHeaders.Add(""Accept"", ""*/*"");"); |                 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(""Connection"", ""keep-alive"");"); | ||||||
|                 writer.WriteBreak().WriteLine(@"this.HttpClient.DefaultRequestHeaders.Add(""Accept-Encoding"", ""identity"");"); |                 writer.WriteBreak().WriteLine(@"this.HttpClient.DefaultRequestHeaders.Add(""Accept-Encoding"", ""identity"");"); | ||||||
| @@ -418,36 +413,43 @@ namespace MontoyaTech.Rest.Net | |||||||
|                 writer.Write(" input"); |                 writer.Write(" input"); | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  |             //If JSON, add a compress parameter to control compressing the content. | ||||||
|  |             if (routeRequest != null && routeRequest.Json) | ||||||
|  |             { | ||||||
|  |                 writer.WriteSeparator(); | ||||||
|  |                 writer.Write("bool compress = false"); | ||||||
|  |             } | ||||||
|  |  | ||||||
|             writer.WriteLine(")").WriteLine("{").Indent(); |             writer.WriteLine(")").WriteLine("{").Indent(); | ||||||
|  |  | ||||||
|             //Generate the message code |             //Generate the message code | ||||||
|             writer.WriteBreak().Write($"var message = new HttpRequestMessage("); |             writer.WriteBreak().Write($"var message = new System.Net.Http.HttpRequestMessage("); | ||||||
|  |  | ||||||
|             switch (route.Method.ToLower()) |             switch (route.Method.ToLower()) | ||||||
|             { |             { | ||||||
|                 case "post": |                 case "post": | ||||||
|                     writer.Write("HttpMethod.Post"); |                     writer.Write("System.Net.Http.HttpMethod.Post"); | ||||||
|                     break; |                     break; | ||||||
|                 case "get": |                 case "get": | ||||||
|                     writer.Write("HttpMethod.Get"); |                     writer.Write("System.Net.Http.HttpMethod.Get"); | ||||||
|                     break; |                     break; | ||||||
|                 case "delete": |                 case "delete": | ||||||
|                     writer.Write("HttpMethod.Delete"); |                     writer.Write("System.Net.Http.HttpMethod.Delete"); | ||||||
|                     break; |                     break; | ||||||
|                 case "put": |                 case "put": | ||||||
|                     writer.Write("HttpMethod.Put"); |                     writer.Write("System.Net.Http.HttpMethod.Put"); | ||||||
|                     break; |                     break; | ||||||
|                 case "options": |                 case "options": | ||||||
|                     writer.Write("HttpMethod.Options"); |                     writer.Write("System.Net.Http.HttpMethod.Options"); | ||||||
|                     break; |                     break; | ||||||
|                 case "patch": |                 case "patch": | ||||||
|                     writer.Write("HttpMethod.Patch"); |                     writer.Write("System.Net.Http.HttpMethod.Patch"); | ||||||
|                     break; |                     break; | ||||||
|                 case "head": |                 case "head": | ||||||
|                     writer.Write("HttpMethod.Head"); |                     writer.Write("System.Net.Http.HttpMethod.Head"); | ||||||
|                     break; |                     break; | ||||||
|                 case "trace": |                 case "trace": | ||||||
|                     writer.Write("HttpMethod.Trace"); |                     writer.Write("System.Net.Http.HttpMethod.Trace"); | ||||||
|                     break; |                     break; | ||||||
|                 default: |                 default: | ||||||
|                     throw new NotSupportedException("Unsupport route method:" + route.Method); |                     throw new NotSupportedException("Unsupport route method:" + route.Method); | ||||||
| @@ -496,23 +498,46 @@ namespace MontoyaTech.Rest.Net | |||||||
|                 { |                 { | ||||||
|                     writer.WriteBreak().WriteLine("request.Seek(0, System.IO.SeekOrigin.Begin);"); |                     writer.WriteBreak().WriteLine("request.Seek(0, System.IO.SeekOrigin.Begin);"); | ||||||
|  |  | ||||||
|                     writer.WriteBreak().WriteLine("message.Content = new StreamContent(request);"); |                     writer.WriteBreak().WriteLine("message.Content = new System.Net.Http.StreamContent(request);"); | ||||||
|                 } |                 } | ||||||
|                 else if (routeRequest.Json) |                 else if (routeRequest.Json) | ||||||
|                 { |                 { | ||||||
|                     writer.WriteBreak().WriteLine("message.Content = new StringContent(JsonConvert.SerializeObject(request));"); |                     writer.WriteBreak().WriteLine("if (compress)").WriteLine("{").Indent(); | ||||||
|  |  | ||||||
|  |                     writer.WriteLine("using (var uncompressedStream = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(request))))"); | ||||||
|  |                     writer.WriteLine("{").Indent(); | ||||||
|  |                     writer.WriteLine("using (var compressedStream = new System.IO.MemoryStream())"); | ||||||
|  |                     writer.WriteLine("{").Indent(); | ||||||
|  |                     writer.WriteLine("using (var gzipStream = new System.IO.Compression.GZipStream(compressedStream, System.IO.Compression.CompressionMode.Compress, true))"); | ||||||
|  |                     writer.Indent().WriteLine("uncompressedStream.CopyTo(gzipStream);").Outdent(); | ||||||
|  |  | ||||||
|  |                     writer.WriteBreak(); | ||||||
|  |                     writer.WriteLine("message.Content = new System.Net.Http.ByteArrayContent(compressedStream.ToArray());"); | ||||||
|  |                     writer.WriteLine("message.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(System.Net.Mime.MediaTypeNames.Application.Json);"); | ||||||
|  |                     writer.WriteLine("message.Content.Headers.ContentEncoding.Add(\"gzip\");"); | ||||||
|  |  | ||||||
|  |                     writer.Outdent().WriteLine("}"); | ||||||
|  |                     writer.Outdent().WriteLine("}"); | ||||||
|  |  | ||||||
|  |                     writer.Outdent().WriteLine("}"); | ||||||
|  |                     writer.WriteLine("else").WriteLine("{").Indent(); | ||||||
|  |  | ||||||
|  |                     writer.WriteBreak().WriteLine("message.Content = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request));"); | ||||||
|  |                     writer.WriteBreak().WriteLine("message.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(System.Net.Mime.MediaTypeNames.Application.Json);"); | ||||||
|  |  | ||||||
|  |                     writer.Outdent().WriteLine("}"); | ||||||
|                 } |                 } | ||||||
|                 else |                 else | ||||||
|                 { |                 { | ||||||
|                     writer.WriteBreak().WriteLine("message.Content = new StringContent(request.ToString());"); |                     writer.WriteBreak().WriteLine("message.Content = new System.Net.Http.StringContent(request.ToString());"); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             //Generate the response code |             //Generate the response code | ||||||
|             if (this.StaticCode) |             if (this.StaticCode) | ||||||
|                 writer.WriteBreak().WriteLine($"var response = {this.ClientName}.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead);"); |                 writer.WriteBreak().WriteLine($"var response = {this.ClientName}.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);"); | ||||||
|             else |             else | ||||||
|                 writer.WriteBreak().WriteLine("var response = this.Client.HttpClient.Send(message, HttpCompletionOption.ResponseHeadersRead);"); |                 writer.WriteBreak().WriteLine("var response = this.Client.HttpClient.Send(message, System.Net.Http.HttpCompletionOption.ResponseHeadersRead);"); | ||||||
|  |  | ||||||
|             //Handle the response |             //Handle the response | ||||||
|             if (routeResponse != null) |             if (routeResponse != null) | ||||||
| @@ -544,7 +569,7 @@ namespace MontoyaTech.Rest.Net | |||||||
|  |  | ||||||
|                     if (routeResponse.Json) |                     if (routeResponse.Json) | ||||||
|                     { |                     { | ||||||
|                         writer.WriteBreak().WriteLine($"return JsonConvert.DeserializeObject<{(routeResponse.Dynamic ? "dynamic" : this.GetTypeFullyResolvedName(routeResponse.ResponseType))}>(content);"); |                         writer.WriteBreak().WriteLine($"return Newtonsoft.Json.JsonConvert.DeserializeObject<{(routeResponse.Dynamic ? "dynamic" : this.GetTypeFullyResolvedName(routeResponse.ResponseType))}>(content);"); | ||||||
|                     } |                     } | ||||||
|                     else |                     else | ||||||
|                     { |                     { | ||||||
| @@ -563,7 +588,7 @@ namespace MontoyaTech.Rest.Net | |||||||
|                                 break; |                                 break; | ||||||
|  |  | ||||||
|                             case TypeCode.DateTime: |                             case TypeCode.DateTime: | ||||||
|                                 writer.WriteBreak().WriteLine("return DateTime.Parse(content);"); |                                 writer.WriteBreak().WriteLine("return System.DateTime.Parse(content);"); | ||||||
|                                 break; |                                 break; | ||||||
|  |  | ||||||
|                             case TypeCode.Decimal: |                             case TypeCode.Decimal: | ||||||
| @@ -617,13 +642,13 @@ namespace MontoyaTech.Rest.Net | |||||||
|                 } |                 } | ||||||
|  |  | ||||||
|                 writer.Outdent().WriteLine("}").WriteLine("else").WriteLine("{").Indent(); |                 writer.Outdent().WriteLine("}").WriteLine("else").WriteLine("{").Indent(); | ||||||
|                 writer.WriteLine(@"throw new Exception(""Unexpected Http Response StatusCode:"" + response.StatusCode);"); |                 writer.WriteLine(@"throw new System.Exception(""Unexpected Http Response StatusCode:"" + response.StatusCode);"); | ||||||
|                 writer.Outdent().WriteLine("}"); |                 writer.Outdent().WriteLine("}"); | ||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|                 writer.WriteBreak().WriteLine("if (!response.IsSuccessStatusCode)").Indent(); |                 writer.WriteBreak().WriteLine("if (!response.IsSuccessStatusCode)").Indent(); | ||||||
|                 writer.WriteLine(@"throw new Exception(""Unexpected Http Response StatusCode:"" + response.StatusCode);").Outdent(); |                 writer.WriteLine(@"throw new System.Exception(""Unexpected Http Response StatusCode:"" + response.StatusCode);").Outdent(); | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             //Close off the route function. |             //Close off the route function. | ||||||
|   | |||||||
| @@ -248,7 +248,7 @@ namespace MontoyaTech.Rest.Net | |||||||
|                         case TypeCode.Char: |                         case TypeCode.Char: | ||||||
|                             return "char"; |                             return "char"; | ||||||
|                         case TypeCode.DateTime: |                         case TypeCode.DateTime: | ||||||
|                             return "DateTime"; |                             return "System.DateTime"; | ||||||
|                         case TypeCode.Decimal: |                         case TypeCode.Decimal: | ||||||
|                             return "decimal"; |                             return "decimal"; | ||||||
|                         case TypeCode.Double: |                         case TypeCode.Double: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user