diff --git a/Octokit.Tests/Http/JsonHttpPipelineTests.cs b/Octokit.Tests/Http/JsonHttpPipelineTests.cs index d8e839b4..f5d7cc06 100644 --- a/Octokit.Tests/Http/JsonHttpPipelineTests.cs +++ b/Octokit.Tests/Http/JsonHttpPipelineTests.cs @@ -1,7 +1,7 @@ using System; +using System.IO; using Octokit.Http; using Xunit; -using Xunit.Extensions; namespace Octokit.Tests.Http { @@ -55,6 +55,18 @@ namespace Octokit.Tests.Http Assert.Equal(json, request.Body); } + [Fact] + public void LeavesStreamBodyAlone() + { + var stream = new MemoryStream(); + var request = new Request { Body = stream }; + var jsonPipeline = new JsonHttpPipeline(); + + jsonPipeline.SerializeRequest(request); + + Assert.Same(stream, request.Body); + } + [Fact] public void LeavesNullBodyAlone() { diff --git a/Octokit/Http/JsonHttpPipeline.cs b/Octokit/Http/JsonHttpPipeline.cs index 96726dcd..959c1238 100644 --- a/Octokit/Http/JsonHttpPipeline.cs +++ b/Octokit/Http/JsonHttpPipeline.cs @@ -1,4 +1,5 @@ using System; +using System.IO; using System.Net.Http; namespace Octokit.Http @@ -35,7 +36,7 @@ namespace Octokit.Http request.Headers["Accept"] = "application/vnd.github.manifold-preview; charset=utf-8"; if (request.Method == HttpMethod.Get || request.Body == null) return; - if (request.Body is string) return; + if (request.Body is string || request.Body is Stream) return; request.Body = _serializer.Serialize(request.Body); }