mirror of
https://github.com/chylex/Discord-History-Tracker.git
synced 2026-11-02 01:32:39 +03:00
34 lines
1.1 KiB
C#
34 lines
1.1 KiB
C#
using System.IO;
|
|
using System.Net.Mime;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using Microsoft.AspNetCore.Http;
|
|
|
|
namespace DHT.Utils.Http;
|
|
|
|
public static class HttpExtensions {
|
|
public static Task WriteTextAsync(this HttpResponse response, string text) {
|
|
return WriteTextAsync(response, MediaTypeNames.Text.Plain, text);
|
|
}
|
|
|
|
public static async Task WriteTextAsync(this HttpResponse response, string contentType, string text) {
|
|
response.ContentType = contentType;
|
|
await response.StartAsync();
|
|
await response.WriteAsync(text, Encoding.UTF8);
|
|
}
|
|
|
|
public static async Task WriteFileAsync(this HttpResponse response, string? contentType, byte[] bytes) {
|
|
response.ContentType = contentType ?? string.Empty;
|
|
response.ContentLength = bytes.Length;
|
|
await response.StartAsync();
|
|
await response.Body.WriteAsync(bytes);
|
|
}
|
|
|
|
public static async Task WriteStreamAsync(this HttpResponse response, string? contentType, ulong? contentLength, Stream source) {
|
|
response.ContentType = contentType ?? string.Empty;
|
|
response.ContentLength = (long?) contentLength;
|
|
await response.StartAsync();
|
|
await source.CopyToAsync(response.Body);
|
|
}
|
|
}
|