mirror of
https://github.com/zoriya/octokit.net.git
synced 2025-12-20 14:15:12 +00:00
JsonHttpPipeline only deserializes JSON responses
The JsonHttpPipeline should only try to deserialize responses that have a Content-Type of application/json.
This commit is contained in:
@@ -26,11 +26,13 @@ namespace Octokit.Http
|
||||
Ensure.ArgumentNotNull(responseMessage, "responseMessage");
|
||||
|
||||
string responseBody = null;
|
||||
string contentType = null;
|
||||
using (var content = responseMessage.Content)
|
||||
{
|
||||
if (content != null)
|
||||
{
|
||||
responseBody = await responseMessage.Content.ReadAsStringAsync();
|
||||
contentType = GetContentType(content);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,6 +40,7 @@ namespace Octokit.Http
|
||||
{
|
||||
Body = responseBody,
|
||||
StatusCode = responseMessage.StatusCode,
|
||||
ContentType = contentType
|
||||
};
|
||||
|
||||
foreach (var h in responseMessage.Headers)
|
||||
@@ -56,7 +59,9 @@ namespace Octokit.Http
|
||||
{
|
||||
requestMessage = new HttpRequestMessage(request.Method, request.Endpoint);
|
||||
foreach (var header in request.Headers)
|
||||
{
|
||||
requestMessage.Headers.Add(header.Key, header.Value);
|
||||
}
|
||||
|
||||
var body = request.Body as string;
|
||||
if (body != null)
|
||||
@@ -80,5 +85,14 @@ namespace Octokit.Http
|
||||
|
||||
return requestMessage;
|
||||
}
|
||||
|
||||
static string GetContentType(HttpContent httpContent)
|
||||
{
|
||||
if (httpContent.Headers != null && httpContent.Headers.ContentType != null)
|
||||
{
|
||||
return httpContent.Headers.ContentType.MediaType;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user