diff options
Diffstat (limited to 'Emby.Dlna/PlayTo/SsdpHttpClient.cs')
| -rw-r--r-- | Emby.Dlna/PlayTo/SsdpHttpClient.cs | 45 |
1 files changed, 31 insertions, 14 deletions
diff --git a/Emby.Dlna/PlayTo/SsdpHttpClient.cs b/Emby.Dlna/PlayTo/SsdpHttpClient.cs index 1aa671b8f..78b688d92 100644 --- a/Emby.Dlna/PlayTo/SsdpHttpClient.cs +++ b/Emby.Dlna/PlayTo/SsdpHttpClient.cs @@ -31,14 +31,15 @@ namespace Emby.Dlna.PlayTo bool logRequest = true, string header = null) { - var response = await PostSoapDataAsync(NormalizeServiceUrl(baseUrl, service.ControlUrl), "\"" + service.ServiceType + "#" + command + "\"", postData, header, logRequest) - .ConfigureAwait(false); - - using (var stream = response.Content) + using (var response = await PostSoapDataAsync(NormalizeServiceUrl(baseUrl, service.ControlUrl), "\"" + service.ServiceType + "#" + command + "\"", postData, header, logRequest) + .ConfigureAwait(false)) { - using (var reader = new StreamReader(stream, Encoding.UTF8)) + using (var stream = response.Content) { - return XDocument.Parse(reader.ReadToEnd(), LoadOptions.PreserveWhitespace); + using (var reader = new StreamReader(stream, Encoding.UTF8)) + { + return XDocument.Parse(reader.ReadToEnd(), LoadOptions.PreserveWhitespace); + } } } } @@ -71,7 +72,10 @@ namespace Emby.Dlna.PlayTo Url = url, UserAgent = USERAGENT, LogErrorResponseBody = true, - BufferContent = false + BufferContent = false, + + // The periodic requests may keep some devices awake + LogRequestAsDebug = true }; options.RequestHeaders["HOST"] = ip + ":" + port.ToString(_usCulture); @@ -79,7 +83,10 @@ namespace Emby.Dlna.PlayTo options.RequestHeaders["NT"] = "upnp:event"; options.RequestHeaders["TIMEOUT"] = "Second-" + timeOut.ToString(_usCulture); - await _httpClient.SendAsync(options, "SUBSCRIBE").ConfigureAwait(false); + using (await _httpClient.SendAsync(options, "SUBSCRIBE").ConfigureAwait(false)) + { + + } } public async Task<XDocument> GetDataAsync(string url) @@ -89,16 +96,22 @@ namespace Emby.Dlna.PlayTo Url = url, UserAgent = USERAGENT, LogErrorResponseBody = true, - BufferContent = false + BufferContent = false, + + // The periodic requests may keep some devices awake + LogRequestAsDebug = true }; options.RequestHeaders["FriendlyName.DLNA.ORG"] = FriendlyName; - using (var stream = await _httpClient.Get(options).ConfigureAwait(false)) + using (var response = await _httpClient.SendAsync(options, "GET").ConfigureAwait(false)) { - using (var reader = new StreamReader(stream, Encoding.UTF8)) + using (var stream = response.Content) { - return XDocument.Parse(reader.ReadToEnd(), LoadOptions.PreserveWhitespace); + using (var reader = new StreamReader(stream, Encoding.UTF8)) + { + return XDocument.Parse(reader.ReadToEnd(), LoadOptions.PreserveWhitespace); + } } } } @@ -118,7 +131,10 @@ namespace Emby.Dlna.PlayTo UserAgent = USERAGENT, LogRequest = logRequest || _config.GetDlnaConfiguration().EnableDebugLog, LogErrorResponseBody = true, - BufferContent = false + BufferContent = false, + + // The periodic requests may keep some devices awake + LogRequestAsDebug = true }; options.RequestHeaders["SOAPAction"] = soapAction; @@ -130,7 +146,8 @@ namespace Emby.Dlna.PlayTo options.RequestHeaders["contentFeatures.dlna.org"] = header; } - options.RequestContentType = "text/xml; charset=\"utf-8\""; + options.RequestContentType = "text/xml"; + options.AppendCharsetToMimeType = true; options.RequestContent = postData; return _httpClient.Post(options); |
