Skip to content

Commit bc90167

Browse files
committed
Added the raw response message to RestResponse
1 parent e4032ba commit bc90167

File tree

2 files changed

+26
-28
lines changed

2 files changed

+26
-28
lines changed

src/RestSharp/Response/RestResponse.cs

Lines changed: 20 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ public static RestResponse<T> FromResponse(RestResponse response)
5151
Server = response.Server,
5252
StatusCode = response.StatusCode,
5353
StatusDescription = response.StatusDescription,
54-
Request = response.Request
54+
Request = response.Request,
55+
ResponseMessage = response.ResponseMessage
5556
};
5657
}
5758

@@ -60,12 +61,6 @@ public static RestResponse<T> FromResponse(RestResponse response)
6061
/// </summary>
6162
[DebuggerDisplay("{" + nameof(DebuggerDisplay) + "()}")]
6263
public class RestResponse : RestResponseBase {
63-
RestResponse SetHeaders(HttpResponseHeaders httpHeaders) => this.With(x => x.Headers = httpHeaders.GetHeaderParameters());
64-
65-
RestResponse SetContentHeaders(HttpContentHeaders httpHeaders) => this.With(x => x.ContentHeaders = httpHeaders.GetHeaderParameters());
66-
67-
RestResponse SetCookies(CookieCollection cookies) => this.With(x => x.Cookies = cookies);
68-
6964
internal static async Task<RestResponse> FromHttpResponse(
7065
HttpResponseMessage httpResponse,
7166
RestRequest request,
@@ -108,23 +103,24 @@ async Task<RestResponse> GetDefaultResponse() {
108103
}
109104

110105
return new RestResponse {
111-
Content = content,
112-
RawBytes = bytes,
113-
ContentEncoding = httpResponse.Content.Headers.ContentEncoding,
114-
Version = httpResponse.RequestMessage?.Version,
115-
ContentLength = httpResponse.Content.Headers.ContentLength,
116-
ContentType = httpResponse.Content.Headers.ContentType?.MediaType,
117-
ResponseStatus = httpResponse.IsSuccessStatusCode ? ResponseStatus.Completed : ResponseStatus.Error,
118-
ResponseUri = httpResponse.RequestMessage!.RequestUri,
119-
Server = httpResponse.Headers.Server.ToString(),
120-
StatusCode = httpResponse.StatusCode,
121-
StatusDescription = httpResponse.ReasonPhrase,
122-
IsSuccessful = httpResponse.IsSuccessStatusCode,
123-
Request = request
124-
}
125-
.SetHeaders(httpResponse.Headers)
126-
.SetContentHeaders(httpResponse.Content.Headers)
127-
.SetCookies(cookieCollection);
106+
Content = content,
107+
RawBytes = bytes,
108+
ContentEncoding = httpResponse.Content.Headers.ContentEncoding,
109+
Version = httpResponse.RequestMessage?.Version,
110+
ContentLength = httpResponse.Content.Headers.ContentLength,
111+
ContentType = httpResponse.Content.Headers.ContentType?.MediaType,
112+
ResponseStatus = httpResponse.IsSuccessStatusCode ? ResponseStatus.Completed : ResponseStatus.Error,
113+
ResponseUri = httpResponse.RequestMessage!.RequestUri,
114+
Server = httpResponse.Headers.Server.ToString(),
115+
StatusCode = httpResponse.StatusCode,
116+
StatusDescription = httpResponse.ReasonPhrase,
117+
IsSuccessful = httpResponse.IsSuccessStatusCode,
118+
Request = request,
119+
ResponseMessage = httpResponse,
120+
Headers = httpResponse.Headers.GetHeaderParameters(),
121+
ContentHeaders = httpResponse.Content.Headers.GetHeaderParameters(),
122+
Cookies = cookieCollection
123+
};
128124
}
129125
}
130126
}

src/RestSharp/Response/RestResponseBase.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ public abstract class RestResponseBase {
3434
/// Mainly for debugging if ResponseStatus is not OK
3535
/// </remarks>
3636
public RestRequest? Request { get; set; }
37+
38+
public HttpResponseMessage? ResponseMessage { get; init; }
3739

3840
/// <summary>
3941
/// MIME content type of response
@@ -58,7 +60,7 @@ public abstract class RestResponseBase {
5860
/// <summary>
5961
/// HTTP response status code
6062
/// </summary>
61-
public HttpStatusCode StatusCode { get; set; }
63+
public HttpStatusCode StatusCode { get; init; }
6264

6365
/// <summary>
6466
/// Whether or not the response status code indicates success
@@ -88,17 +90,17 @@ public abstract class RestResponseBase {
8890
/// <summary>
8991
/// Cookies returned by server with the response
9092
/// </summary>
91-
public CookieCollection? Cookies { get; protected internal set; }
93+
public CookieCollection? Cookies { get; init; }
9294

9395
/// <summary>
9496
/// Response headers returned by server with the response
9597
/// </summary>
96-
public IReadOnlyCollection<HeaderParameter>? Headers { get; protected internal set; }
98+
public IReadOnlyCollection<HeaderParameter>? Headers { get; init; }
9799

98100
/// <summary>
99101
/// Content headers returned by server with the response
100102
/// </summary>
101-
public IReadOnlyCollection<HeaderParameter>? ContentHeaders { get; protected internal set; }
103+
public IReadOnlyCollection<HeaderParameter>? ContentHeaders { get; init; }
102104

103105
/// <summary>
104106
/// Status of the request. Will return Error for transport errors.

0 commit comments

Comments
 (0)