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,
|
||||
UserAgent = "Emby",
|
||||
RequestContentType = "text/xml; charset=\"utf-8\"",
|
||||
RequestContentType = "text/xml",
|
||||
LogErrorResponseBody = true,
|
||||
Url = request.ContentDirectoryUrl,
|
||||
BufferContent = false
|
||||
|
|
|
@ -72,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);
|
||||
|
@ -93,7 +96,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["FriendlyName.DLNA.ORG"] = FriendlyName;
|
||||
|
@ -125,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;
|
||||
|
@ -137,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.RequestContentEncoding = Encoding.UTF8;
|
||||
options.RequestContent = postData;
|
||||
|
||||
return _httpClient.Post(options);
|
||||
|
|
|
@ -320,8 +320,6 @@ namespace Emby.Server.Implementations.HttpClientManager
|
|||
|
||||
private async Task<HttpResponseInfo> GetCachedResponse(string responseCachePath, TimeSpan cacheLength, string url)
|
||||
{
|
||||
_logger.Info("Checking for cache file {0}", responseCachePath);
|
||||
|
||||
try
|
||||
{
|
||||
if (_fileSystem.GetLastWriteTimeUtc(responseCachePath).Add(cacheLength) > DateTime.UtcNow)
|
||||
|
@ -402,7 +400,17 @@ namespace Emby.Server.Implementations.HttpClientManager
|
|||
var bytes = options.RequestContentBytes ??
|
||||
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;
|
||||
(await httpWebRequest.GetRequestStreamAsync().ConfigureAwait(false)).Write(bytes, 0, bytes.Length);
|
||||
|
@ -430,7 +438,14 @@ namespace Emby.Server.Implementations.HttpClientManager
|
|||
|
||||
if (options.LogRequest)
|
||||
{
|
||||
_logger.Info("HttpClientManager {0}: {1}", httpMethod.ToUpper(), options.Url);
|
||||
if (options.LogRequestAsDebug)
|
||||
{
|
||||
_logger.Debug("HttpClientManager {0}: {1}", httpMethod.ToUpper(), options.Url);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Info("HttpClientManager {0}: {1}", httpMethod.ToUpper(), options.Url);
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
|
@ -597,7 +612,14 @@ namespace Emby.Server.Implementations.HttpClientManager
|
|||
|
||||
if (options.LogRequest)
|
||||
{
|
||||
_logger.Info("HttpClientManager.GetTempFileResponse url: {0}", options.Url);
|
||||
if (options.LogRequestAsDebug)
|
||||
{
|
||||
_logger.Debug("HttpClientManager.GetTempFileResponse url: {0}", options.Url);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Info("HttpClientManager.GetTempFileResponse url: {0}", options.Url);
|
||||
}
|
||||
}
|
||||
|
||||
var client = GetHttpClient(GetHostFromUrl(options.Url), options.EnableHttpCompression);
|
||||
|
|
|
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
|||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Threading;
|
||||
using System.Text;
|
||||
|
||||
namespace MediaBrowser.Common.Net
|
||||
{
|
||||
|
@ -90,6 +91,7 @@ namespace MediaBrowser.Common.Net
|
|||
public bool BufferContent { get; set; }
|
||||
|
||||
public bool LogRequest { get; set; }
|
||||
public bool LogRequestAsDebug { get; set; }
|
||||
public bool LogErrors { get; set; }
|
||||
|
||||
public bool LogErrorResponseBody { get; set; }
|
||||
|
@ -102,6 +104,8 @@ namespace MediaBrowser.Common.Net
|
|||
public bool PreferIpv4 { get; set; }
|
||||
public bool EnableDefaultUserAgent { get; set; }
|
||||
|
||||
public Encoding RequestContentEncoding { get; set; }
|
||||
|
||||
private string GetHeaderValue(string name)
|
||||
{
|
||||
string value;
|
||||
|
|
|
@ -64,6 +64,10 @@ namespace Mono.Nat.Upnp
|
|||
{
|
||||
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.RequestHeaders.Add("ACCEPT-LANGUAGE", "en");
|
||||
|
||||
|
|
|
@ -52,9 +52,14 @@ namespace Mono.Nat.Upnp
|
|||
|
||||
var req = new HttpRequestOptions();
|
||||
req.LogErrors = false;
|
||||
|
||||
// The periodic request logging may keep some devices awake
|
||||
req.LogRequestAsDebug = true;
|
||||
|
||||
req.Url = ss;
|
||||
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 + "\"");
|
||||
|
||||
string bodyString = "<s:Envelope "
|
||||
|
|
Loading…
Reference in New Issue
Block a user