1313// limitations under the License.
1414
1515using System . Diagnostics ;
16- using System . Text ;
1716using RestSharp . Extensions ;
1817
1918// ReSharper disable SuggestBaseTypeForParameter
@@ -39,12 +38,11 @@ public partial class RestResponse<T>(RestRequest request) : RestResponse(request
3938[ DebuggerDisplay ( $ "{{{nameof(DebuggerDisplay)}()}}") ]
4039public class RestResponse ( RestRequest request ) : RestResponseBase ( request ) {
4140 internal static async Task < RestResponse > FromHttpResponse (
42- HttpResponseMessage httpResponse ,
43- RestRequest request ,
44- Encoding encoding ,
45- CookieCollection ? cookieCollection ,
46- CalculateResponseStatus calculateResponseStatus ,
47- CancellationToken cancellationToken
41+ HttpResponseMessage httpResponse ,
42+ RestRequest request ,
43+ ReadOnlyRestClientOptions options ,
44+ CookieCollection ? cookieCollection ,
45+ CancellationToken cancellationToken
4846 ) {
4947 return request . AdvancedResponseWriter ? . Invoke ( httpResponse , request ) ?? await GetDefaultResponse ( ) . ConfigureAwait ( false ) ;
5048
@@ -56,7 +54,7 @@ async Task<RestResponse> GetDefaultResponse() {
5654#endif
5755
5856 var bytes = stream == null ? null : await stream . ReadAsBytes ( cancellationToken ) . ConfigureAwait ( false ) ;
59- var content = bytes == null ? null : await httpResponse . GetResponseString ( bytes , encoding ) ;
57+ var content = bytes == null ? null : await httpResponse . GetResponseString ( bytes , options . Encoding ) ;
6058
6159 return new ( request ) {
6260 Content = content ,
@@ -65,11 +63,11 @@ async Task<RestResponse> GetDefaultResponse() {
6563 ContentLength = httpResponse . Content ? . Headers . ContentLength ,
6664 ContentType = httpResponse . Content ? . Headers . ContentType ? . MediaType ,
6765 Cookies = cookieCollection ,
68- ErrorException = httpResponse . MaybeException ( ) ,
66+ ErrorException = httpResponse . MaybeException ( options . ErrorWhenUnsuccessfulStatusCode ) ,
6967 Headers = httpResponse . Headers . GetHeaderParameters ( ) ,
7068 IsSuccessStatusCode = httpResponse . IsSuccessStatusCode ,
7169 RawBytes = bytes ,
72- ResponseStatus = calculateResponseStatus ( httpResponse ) ,
70+ ResponseStatus = options . CalculateResponseStatus ( httpResponse ) ,
7371 ResponseUri = httpResponse . RequestMessage ? . RequestUri ,
7472 RootElement = request . RootElement ,
7573 Server = httpResponse . Headers . Server . ToString ( ) ,
@@ -83,4 +81,4 @@ async Task<RestResponse> GetDefaultResponse() {
8381 public RestResponse ( ) : this ( new ( ) ) { }
8482}
8583
86- public delegate ResponseStatus CalculateResponseStatus ( HttpResponseMessage httpResponse ) ;
84+ public delegate ResponseStatus CalculateResponseStatus ( HttpResponseMessage httpResponse ) ;
0 commit comments