diff options
| author | Shadowghost <Ghost_of_Stone@web.de> | 2023-06-15 17:53:52 +0200 |
|---|---|---|
| committer | Shadowghost <Ghost_of_Stone@web.de> | 2023-06-15 17:53:52 +0200 |
| commit | 32499f0e98a870872c184b23cd6d514f7a9fa09b (patch) | |
| tree | a46776045d8e29366803dded6ecd717f757cbccd /Emby.Dlna | |
| parent | 006b04dc0b2fcbdcad50cbaf213cb1e7e47ea52a (diff) | |
| parent | d874262bf9826b348e146efb4958af447d75f7c8 (diff) | |
Merge branch 'master' into network-rewrite
Diffstat (limited to 'Emby.Dlna')
| -rw-r--r-- | Emby.Dlna/PlayTo/DlnaHttpClient.cs | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/Emby.Dlna/PlayTo/DlnaHttpClient.cs b/Emby.Dlna/PlayTo/DlnaHttpClient.cs index 4e9903f26..8b983e9e3 100644 --- a/Emby.Dlna/PlayTo/DlnaHttpClient.cs +++ b/Emby.Dlna/PlayTo/DlnaHttpClient.cs @@ -49,20 +49,24 @@ namespace Emby.Dlna.PlayTo private async Task<XDocument?> SendRequestAsync(HttpRequestMessage request, CancellationToken cancellationToken) { - using var response = await _httpClientFactory.CreateClient(NamedClient.Dlna).SendAsync(request, HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); + var client = _httpClientFactory.CreateClient(NamedClient.Dlna); + using var response = await client.SendAsync(request, cancellationToken).ConfigureAwait(false); response.EnsureSuccessStatusCode(); - await using var stream = await response.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false); + await using MemoryStream ms = new MemoryStream(); + await response.Content.CopyToAsync(ms, cancellationToken).ConfigureAwait(false); try { return await XDocument.LoadAsync( - stream, + ms, LoadOptions.None, cancellationToken).ConfigureAwait(false); } catch (XmlException) { // try correcting the Xml response with common errors - var xmlString = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + ms.Position = 0; + using StreamReader sr = new StreamReader(ms); + var xmlString = await sr.ReadToEndAsync(cancellationToken).ConfigureAwait(false); // find and replace unescaped ampersands (&) xmlString = EscapeAmpersandRegex().Replace(xmlString, "&"); @@ -70,7 +74,7 @@ namespace Emby.Dlna.PlayTo try { // retry reading Xml - var xmlReader = new StringReader(xmlString); + using var xmlReader = new StringReader(xmlString); return await XDocument.LoadAsync( xmlReader, LoadOptions.None, |
