mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-20 13:33:34 -07:00
Fixed: Updated error message if services respond with html
Co-Authored-By: taloth <taloth@users.noreply.github.com>
This commit is contained in:
parent
6da9868716
commit
2f6b0c77ea
4 changed files with 33 additions and 3 deletions
|
@ -267,6 +267,7 @@ namespace NzbDrone.Common.Http
|
||||||
public HttpResponse<T> Get<T>(HttpRequest request) where T : new()
|
public HttpResponse<T> Get<T>(HttpRequest request) where T : new()
|
||||||
{
|
{
|
||||||
var response = Get(request);
|
var response = Get(request);
|
||||||
|
CheckResponseContentType(response);
|
||||||
return new HttpResponse<T>(response);
|
return new HttpResponse<T>(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -285,7 +286,16 @@ namespace NzbDrone.Common.Http
|
||||||
public HttpResponse<T> Post<T>(HttpRequest request) where T : new()
|
public HttpResponse<T> Post<T>(HttpRequest request) where T : new()
|
||||||
{
|
{
|
||||||
var response = Post(request);
|
var response = Post(request);
|
||||||
|
CheckResponseContentType(response);
|
||||||
return new HttpResponse<T>(response);
|
return new HttpResponse<T>(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void CheckResponseContentType(HttpResponse response)
|
||||||
|
{
|
||||||
|
if (response.Headers.ContentType != null && response.Headers.ContentType.Contains("text/html"))
|
||||||
|
{
|
||||||
|
throw new UnexpectedHtmlContentException(response);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,13 +7,19 @@ namespace NzbDrone.Common.Http
|
||||||
public HttpRequest Request { get; private set; }
|
public HttpRequest Request { get; private set; }
|
||||||
public HttpResponse Response { get; private set; }
|
public HttpResponse Response { get; private set; }
|
||||||
|
|
||||||
public HttpException(HttpRequest request, HttpResponse response)
|
public HttpException(HttpRequest request, HttpResponse response, string message)
|
||||||
: base(string.Format("HTTP request failed: [{0}:{1}] [{2}] at [{3}]", (int)response.StatusCode, response.StatusCode, request.Method, request.Url))
|
: base(message)
|
||||||
{
|
{
|
||||||
Request = request;
|
Request = request;
|
||||||
Response = response;
|
Response = response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public HttpException(HttpRequest request, HttpResponse response)
|
||||||
|
: this(request, response, string.Format("HTTP request failed: [{0}:{1}] [{2}] at [{3}]", (int)response.StatusCode, response.StatusCode, request.Method, request.Url))
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public HttpException(HttpResponse response)
|
public HttpException(HttpResponse response)
|
||||||
: this(response.Request, response)
|
: this(response.Request, response)
|
||||||
{
|
{
|
||||||
|
|
13
src/NzbDrone.Common/Http/UnexpectedHtmlContentException.cs
Normal file
13
src/NzbDrone.Common/Http/UnexpectedHtmlContentException.cs
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace NzbDrone.Common.Http
|
||||||
|
{
|
||||||
|
public class UnexpectedHtmlContentException : HttpException
|
||||||
|
{
|
||||||
|
public UnexpectedHtmlContentException(HttpResponse response)
|
||||||
|
: base(response.Request, response, $"Site responded with browser content instead of api data. This disruption may be temporary, please try again later. [{response.Request.Url}]")
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -182,6 +182,7 @@
|
||||||
<Compile Include="Http\TlsFailureException.cs" />
|
<Compile Include="Http\TlsFailureException.cs" />
|
||||||
<Compile Include="Http\TooManyRequestsException.cs" />
|
<Compile Include="Http\TooManyRequestsException.cs" />
|
||||||
<Compile Include="Extensions\IEnumerableExtensions.cs" />
|
<Compile Include="Extensions\IEnumerableExtensions.cs" />
|
||||||
|
<Compile Include="Http\UnexpectedHtmlContentException.cs" />
|
||||||
<Compile Include="Http\UserAgentBuilder.cs" />
|
<Compile Include="Http\UserAgentBuilder.cs" />
|
||||||
<Compile Include="Instrumentation\CleanseLogMessage.cs" />
|
<Compile Include="Instrumentation\CleanseLogMessage.cs" />
|
||||||
<Compile Include="Instrumentation\CleansingJsonVisitor.cs" />
|
<Compile Include="Instrumentation\CleansingJsonVisitor.cs" />
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue