diff --git a/src/Jackett/Utils/JsonContent.cs b/src/Jackett/Utils/JsonContent.cs index 17132f029..cdb83c040 100644 --- a/src/Jackett/Utils/JsonContent.cs +++ b/src/Jackett/Utils/JsonContent.cs @@ -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"; + } } }