separate encoding from content type values
This commit is contained in:
parent
4fb4a87ca0
commit
c2361db772
|
@ -33,7 +33,7 @@ namespace Emby.Dlna.ContentDirectory
|
||||||
{
|
{
|
||||||
CancellationToken = cancellationToken,
|
CancellationToken = cancellationToken,
|
||||||
UserAgent = "Emby",
|
UserAgent = "Emby",
|
||||||
RequestContentType = "text/xml; charset=\"utf-8\"",
|
RequestContentType = "text/xml",
|
||||||
LogErrorResponseBody = true,
|
LogErrorResponseBody = true,
|
||||||
Url = request.ContentDirectoryUrl,
|
Url = request.ContentDirectoryUrl,
|
||||||
BufferContent = false
|
BufferContent = false
|
||||||
|
|
|
@ -72,7 +72,10 @@ namespace Emby.Dlna.PlayTo
|
||||||
Url = url,
|
Url = url,
|
||||||
UserAgent = USERAGENT,
|
UserAgent = USERAGENT,
|
||||||
LogErrorResponseBody = true,
|
LogErrorResponseBody = true,
|
||||||
BufferContent = false
|
BufferContent = false,
|
||||||
|
|
||||||
|
// The periodic requests may keep some devices awake
|
||||||
|
LogRequestAsDebug = true
|
||||||
};
|
};
|
||||||
|
|
||||||
options.RequestHeaders["HOST"] = ip + ":" + port.ToString(_usCulture);
|
options.RequestHeaders["HOST"] = ip + ":" + port.ToString(_usCulture);
|
||||||
|
@ -93,7 +96,10 @@ namespace Emby.Dlna.PlayTo
|
||||||
Url = url,
|
Url = url,
|
||||||
UserAgent = USERAGENT,
|
UserAgent = USERAGENT,
|
||||||
LogErrorResponseBody = true,
|
LogErrorResponseBody = true,
|
||||||
BufferContent = false
|
BufferContent = false,
|
||||||
|
|
||||||
|
// The periodic requests may keep some devices awake
|
||||||
|
LogRequestAsDebug = true
|
||||||
};
|
};
|
||||||
|
|
||||||
options.RequestHeaders["FriendlyName.DLNA.ORG"] = FriendlyName;
|
options.RequestHeaders["FriendlyName.DLNA.ORG"] = FriendlyName;
|
||||||
|
@ -125,7 +131,10 @@ namespace Emby.Dlna.PlayTo
|
||||||
UserAgent = USERAGENT,
|
UserAgent = USERAGENT,
|
||||||
LogRequest = logRequest || _config.GetDlnaConfiguration().EnableDebugLog,
|
LogRequest = logRequest || _config.GetDlnaConfiguration().EnableDebugLog,
|
||||||
LogErrorResponseBody = true,
|
LogErrorResponseBody = true,
|
||||||
BufferContent = false
|
BufferContent = false,
|
||||||
|
|
||||||
|
// The periodic requests may keep some devices awake
|
||||||
|
LogRequestAsDebug = true
|
||||||
};
|
};
|
||||||
|
|
||||||
options.RequestHeaders["SOAPAction"] = soapAction;
|
options.RequestHeaders["SOAPAction"] = soapAction;
|
||||||
|
@ -137,7 +146,8 @@ namespace Emby.Dlna.PlayTo
|
||||||
options.RequestHeaders["contentFeatures.dlna.org"] = header;
|
options.RequestHeaders["contentFeatures.dlna.org"] = header;
|
||||||
}
|
}
|
||||||
|
|
||||||
options.RequestContentType = "text/xml; charset=\"utf-8\"";
|
options.RequestContentType = "text/xml";
|
||||||
|
options.RequestContentEncoding = Encoding.UTF8;
|
||||||
options.RequestContent = postData;
|
options.RequestContent = postData;
|
||||||
|
|
||||||
return _httpClient.Post(options);
|
return _httpClient.Post(options);
|
||||||
|
|
|
@ -320,8 +320,6 @@ namespace Emby.Server.Implementations.HttpClientManager
|
||||||
|
|
||||||
private async Task<HttpResponseInfo> GetCachedResponse(string responseCachePath, TimeSpan cacheLength, string url)
|
private async Task<HttpResponseInfo> GetCachedResponse(string responseCachePath, TimeSpan cacheLength, string url)
|
||||||
{
|
{
|
||||||
_logger.Info("Checking for cache file {0}", responseCachePath);
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (_fileSystem.GetLastWriteTimeUtc(responseCachePath).Add(cacheLength) > DateTime.UtcNow)
|
if (_fileSystem.GetLastWriteTimeUtc(responseCachePath).Add(cacheLength) > DateTime.UtcNow)
|
||||||
|
@ -402,7 +400,17 @@ namespace Emby.Server.Implementations.HttpClientManager
|
||||||
var bytes = options.RequestContentBytes ??
|
var bytes = options.RequestContentBytes ??
|
||||||
Encoding.UTF8.GetBytes(options.RequestContent ?? string.Empty);
|
Encoding.UTF8.GetBytes(options.RequestContent ?? string.Empty);
|
||||||
|
|
||||||
httpWebRequest.ContentType = options.RequestContentType ?? "application/x-www-form-urlencoded";
|
var contentType = options.RequestContentType ?? "application/x-www-form-urlencoded";
|
||||||
|
|
||||||
|
if (options.RequestContentEncoding != null)
|
||||||
|
{
|
||||||
|
if (options.RequestContentEncoding.Equals(Encoding.UTF8))
|
||||||
|
{
|
||||||
|
contentType = contentType.TrimEnd(';') + "; charset=\"utf-8\"";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
httpWebRequest.ContentType = contentType;
|
||||||
|
|
||||||
httpWebRequest.ContentLength = bytes.Length;
|
httpWebRequest.ContentLength = bytes.Length;
|
||||||
(await httpWebRequest.GetRequestStreamAsync().ConfigureAwait(false)).Write(bytes, 0, bytes.Length);
|
(await httpWebRequest.GetRequestStreamAsync().ConfigureAwait(false)).Write(bytes, 0, bytes.Length);
|
||||||
|
@ -429,9 +437,16 @@ namespace Emby.Server.Implementations.HttpClientManager
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.LogRequest)
|
if (options.LogRequest)
|
||||||
|
{
|
||||||
|
if (options.LogRequestAsDebug)
|
||||||
|
{
|
||||||
|
_logger.Debug("HttpClientManager {0}: {1}", httpMethod.ToUpper(), options.Url);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
_logger.Info("HttpClientManager {0}: {1}", httpMethod.ToUpper(), options.Url);
|
_logger.Info("HttpClientManager {0}: {1}", httpMethod.ToUpper(), options.Url);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -596,9 +611,16 @@ namespace Emby.Server.Implementations.HttpClientManager
|
||||||
options.Progress.Report(0);
|
options.Progress.Report(0);
|
||||||
|
|
||||||
if (options.LogRequest)
|
if (options.LogRequest)
|
||||||
|
{
|
||||||
|
if (options.LogRequestAsDebug)
|
||||||
|
{
|
||||||
|
_logger.Debug("HttpClientManager.GetTempFileResponse url: {0}", options.Url);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
_logger.Info("HttpClientManager.GetTempFileResponse url: {0}", options.Url);
|
_logger.Info("HttpClientManager.GetTempFileResponse url: {0}", options.Url);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var client = GetHttpClient(GetHostFromUrl(options.Url), options.EnableHttpCompression);
|
var client = GetHttpClient(GetHostFromUrl(options.Url), options.EnableHttpCompression);
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
namespace MediaBrowser.Common.Net
|
namespace MediaBrowser.Common.Net
|
||||||
{
|
{
|
||||||
|
@ -90,6 +91,7 @@ namespace MediaBrowser.Common.Net
|
||||||
public bool BufferContent { get; set; }
|
public bool BufferContent { get; set; }
|
||||||
|
|
||||||
public bool LogRequest { get; set; }
|
public bool LogRequest { get; set; }
|
||||||
|
public bool LogRequestAsDebug { get; set; }
|
||||||
public bool LogErrors { get; set; }
|
public bool LogErrors { get; set; }
|
||||||
|
|
||||||
public bool LogErrorResponseBody { get; set; }
|
public bool LogErrorResponseBody { get; set; }
|
||||||
|
@ -102,6 +104,8 @@ namespace MediaBrowser.Common.Net
|
||||||
public bool PreferIpv4 { get; set; }
|
public bool PreferIpv4 { get; set; }
|
||||||
public bool EnableDefaultUserAgent { get; set; }
|
public bool EnableDefaultUserAgent { get; set; }
|
||||||
|
|
||||||
|
public Encoding RequestContentEncoding { get; set; }
|
||||||
|
|
||||||
private string GetHeaderValue(string name)
|
private string GetHeaderValue(string name)
|
||||||
{
|
{
|
||||||
string value;
|
string value;
|
||||||
|
|
|
@ -64,6 +64,10 @@ namespace Mono.Nat.Upnp
|
||||||
{
|
{
|
||||||
var req = new HttpRequestOptions();
|
var req = new HttpRequestOptions();
|
||||||
|
|
||||||
|
// The periodic request logging may keep some devices awake
|
||||||
|
req.LogRequestAsDebug = true;
|
||||||
|
req.LogErrors = false;
|
||||||
|
|
||||||
req.Url = "http://" + this.hostAddress.ToString() + this.servicesDescriptionUrl;
|
req.Url = "http://" + this.hostAddress.ToString() + this.servicesDescriptionUrl;
|
||||||
req.RequestHeaders.Add("ACCEPT-LANGUAGE", "en");
|
req.RequestHeaders.Add("ACCEPT-LANGUAGE", "en");
|
||||||
|
|
||||||
|
|
|
@ -52,9 +52,14 @@ namespace Mono.Nat.Upnp
|
||||||
|
|
||||||
var req = new HttpRequestOptions();
|
var req = new HttpRequestOptions();
|
||||||
req.LogErrors = false;
|
req.LogErrors = false;
|
||||||
|
|
||||||
|
// The periodic request logging may keep some devices awake
|
||||||
|
req.LogRequestAsDebug = true;
|
||||||
|
|
||||||
req.Url = ss;
|
req.Url = ss;
|
||||||
req.EnableKeepAlive = false;
|
req.EnableKeepAlive = false;
|
||||||
req.RequestContentType = "text/xml; charset=\"utf-8\"";
|
req.RequestContentType = "text/xml";
|
||||||
|
req.RequestContentEncoding = Encoding.UTF8;
|
||||||
req.RequestHeaders.Add("SOAPACTION", "\"" + device.ServiceType + "#" + upnpMethod + "\"");
|
req.RequestHeaders.Add("SOAPACTION", "\"" + device.ServiceType + "#" + upnpMethod + "\"");
|
||||||
|
|
||||||
string bodyString = "<s:Envelope "
|
string bodyString = "<s:Envelope "
|
||||||
|
|
Loading…
Reference in New Issue
Block a user