aboutsummaryrefslogtreecommitdiff
path: root/Emby.Dlna/PlayTo/SsdpHttpClient.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Dlna/PlayTo/SsdpHttpClient.cs')
-rw-r--r--Emby.Dlna/PlayTo/SsdpHttpClient.cs45
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);