Simplify and fix JsonContent encoding

This commit is contained in:
kaso17 2017-02-02 11:04:47 +01:00
parent 0695ee90d6
commit 0f7ff3fb06
1 changed files with 12 additions and 24 deletions

View File

@ -12,29 +12,17 @@ using System.Threading.Tasks;
namespace Jackett.Utils
{
public class JsonContent : HttpContent
{
private readonly object _value;
public JsonContent(object value)
{
_value = value;
Headers.ContentType = new MediaTypeHeaderValue("application/json");
}
protected override async Task SerializeToStreamAsync(Stream stream,
TransportContext context)
{
var json = JsonConvert.SerializeObject(_value, Formatting.Indented, new JsonSerializerSettings {NullValueHandling = NullValueHandling.Ignore});
var writer = new StreamWriter(stream);
writer.Write(json);
await writer.FlushAsync();
}
protected override bool TryComputeLength(out long length)
{
length = -1;
return false;
}
public class JsonContent : StringContent
{
public JsonContent(object value)
: this(value, Encoding.UTF8)
{
}
public JsonContent(object value, Encoding encoding)
: base(JsonConvert.SerializeObject(value, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }), encoding, "application/json")
{
this.Headers.ContentType.CharSet = "utf-8";
}
}
}