[fix] Fix handling for Streams in IConnection for raw content (#2791)

* Fix handling for Streams

Fix `NullReferenceException` if raw content was handled as a string rather than a stream by `HttpClientAdapter.BuildResponse()`.
Resolves #2789.

* Add Connection.GetRaw tests

Add tests for `Connection.GetRaw()` and for #2789.

---------

Co-authored-by: Keegan Campbell <me@kfcampbell.com>
This commit is contained in:
Martin Costello
2023-11-07 00:47:30 +00:00
committed by GitHub
parent c015d8ce53
commit 4f826bc65b
2 changed files with 117 additions and 2 deletions

View File

@@ -714,8 +714,13 @@ namespace Octokit
{
request.Headers.Add("Accept", AcceptHeaders.RawContentMediaType);
var response = await RunRequest(request, CancellationToken.None).ConfigureAwait(false);
return new ApiResponse<byte[]>(response, await StreamToByteArray(response.Body as Stream));
if (response.Body is Stream stream)
{
return new ApiResponse<byte[]>(response, await StreamToByteArray(stream));
}
return new ApiResponse<byte[]>(response, response.Body as byte[]);
}
async Task<IApiResponse<Stream>> GetRawStream(IRequest request)