diff --git a/Octokit.Tests/Exceptions/ApiValidationExceptionTests.cs b/Octokit.Tests/Exceptions/ApiValidationExceptionTests.cs index 8e1a2049..c3023c47 100644 --- a/Octokit.Tests/Exceptions/ApiValidationExceptionTests.cs +++ b/Octokit.Tests/Exceptions/ApiValidationExceptionTests.cs @@ -3,7 +3,6 @@ using System.IO; using System.Linq; using System.Runtime.Serialization.Formatters.Binary; using NSubstitute; -using Octokit.Internal; using Xunit; using Xunit.Extensions; diff --git a/Octokit.Tests/Http/HttpClientAdapterTests.cs b/Octokit.Tests/Http/HttpClientAdapterTests.cs index 3117a0f4..8ee32662 100644 --- a/Octokit.Tests/Http/HttpClientAdapterTests.cs +++ b/Octokit.Tests/Http/HttpClientAdapterTests.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; @@ -57,6 +58,23 @@ namespace Octokit.Tests.Http Assert.Equal("text/plain", requestMessage.Content.Headers.ContentType.MediaType); } + [Fact] + public void SetsHttpContentBody() + { + var request = new Request + { + Method = HttpMethod.Post, + Body = new FormUrlEncodedContent(new Dictionary {{"foo", "bar"}}) + }; + var tester = new HttpClientAdapterTester(); + + var requestMessage = tester.BuildRequestMessageTester(request); + + Assert.NotNull(requestMessage.Content); + Assert.IsType(requestMessage.Content); + Assert.Equal("application/x-www-form-urlencoded", requestMessage.Content.Headers.ContentType.MediaType); + } + [Fact] public void EnsuresArguments() { diff --git a/Octokit/Http/HttpClientAdapter.cs b/Octokit/Http/HttpClientAdapter.cs index 54df0979..f0bc5ab3 100644 --- a/Octokit/Http/HttpClientAdapter.cs +++ b/Octokit/Http/HttpClientAdapter.cs @@ -1,4 +1,5 @@ using System; +using System.IO; using System.Linq; using System.Net.Http; using System.Text; @@ -68,13 +69,19 @@ namespace Octokit.Internal { requestMessage.Headers.Add(header.Key, header.Value); } + var httpContent = request.Body as HttpContent; + if (httpContent != null) + { + requestMessage.Content = httpContent; + } var body = request.Body as string; if (body != null) { requestMessage.Content = new StringContent(body, Encoding.UTF8, request.ContentType); } - var bodyStream = request.Body as System.IO.Stream; + + var bodyStream = request.Body as Stream; if (bodyStream != null) { requestMessage.Content = new StreamContent(bodyStream);