@@ -21,7 +21,7 @@ namespace RestSharp;
2121public partial class RestClient {
2222 /// <inheritdoc />
2323 public async Task < RestResponse > ExecuteAsync ( RestRequest request , CancellationToken cancellationToken = default ) {
24- var internalResponse = await ExecuteRequestAsync ( request , cancellationToken ) . ConfigureAwait ( false ) ;
24+ using var internalResponse = await ExecuteRequestAsync ( request , cancellationToken ) . ConfigureAwait ( false ) ;
2525
2626 var response = internalResponse . Exception == null
2727 ? await RestResponse . FromHttpResponse (
@@ -85,7 +85,8 @@ async Task<HttpResponse> ExecuteRequestAsync(RestRequest request, CancellationTo
8585
8686 var httpMethod = AsHttpMethod ( request . Method ) ;
8787 var url = this . BuildUri ( request ) ;
88- var message = new HttpRequestMessage ( httpMethod , url ) { Content = requestContent . BuildContent ( ) } ;
88+
89+ using var message = new HttpRequestMessage ( httpMethod , url ) { Content = requestContent . BuildContent ( ) } ;
8990 message . Headers . Host = Options . BaseHost ;
9091 message . Headers . CacheControl = request . CachePolicy ?? Options . CachePolicy ;
9192
@@ -102,11 +103,8 @@ async Task<HttpResponse> ExecuteRequestAsync(RestRequest request, CancellationTo
102103 . AddHeaders ( request . Parameters )
103104 . AddHeaders ( DefaultParameters )
104105 . AddAcceptHeader ( AcceptedContentTypes )
105- . AddCookieHeaders ( cookieContainer , url ) ;
106-
107- if ( Options . CookieContainer != null ) {
108- headers . AddCookieHeaders ( Options . CookieContainer , url ) ;
109- }
106+ . AddCookieHeaders ( url , cookieContainer )
107+ . AddCookieHeaders ( url , Options . CookieContainer ) ;
110108
111109 message . AddHeaders ( headers ) ;
112110
@@ -116,14 +114,10 @@ async Task<HttpResponse> ExecuteRequestAsync(RestRequest request, CancellationTo
116114
117115 // Parse all the cookies from the response and update the cookie jar with cookies
118116 if ( responseMessage . Headers . TryGetValues ( KnownHeaders . SetCookie , out var cookiesHeader ) ) {
119- foreach ( var header in cookiesHeader ) {
120- try {
121- cookieContainer . SetCookies ( url , header ) ;
122- }
123- catch ( CookieException ) {
124- // Do not fail request if we cannot parse a cookie
125- }
126- }
117+ // ReSharper disable once PossibleMultipleEnumeration
118+ cookieContainer . AddCookies ( url , cookiesHeader ) ;
119+ // ReSharper disable once PossibleMultipleEnumeration
120+ Options . CookieContainer ? . AddCookies ( url , cookiesHeader ) ;
127121 }
128122
129123 if ( request . OnAfterRequest != null ) await request . OnAfterRequest ( responseMessage ) . ConfigureAwait ( false ) ;
@@ -141,7 +135,9 @@ record HttpResponse(
141135 CookieContainer ? CookieContainer ,
142136 Exception ? Exception ,
143137 CancellationToken TimeoutToken
144- ) ;
138+ ) : IDisposable {
139+ public void Dispose ( ) => ResponseMessage ? . Dispose ( ) ;
140+ }
145141
146142 static HttpMethod AsHttpMethod ( Method method )
147143 => method switch {
0 commit comments