Fixed: Corrupt image files when downloading from redirecting Url
closes #3401
This commit is contained in:
parent
4123745a6b
commit
e28b2e8328
|
@ -301,6 +301,31 @@ namespace NzbDrone.Common.Test.Http
|
||||||
ExceptionVerification.ExpectedWarns(1);
|
ExceptionVerification.ExpectedWarns(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void should_not_write_redirect_content_to_stream()
|
||||||
|
{
|
||||||
|
var file = GetTempFilePath();
|
||||||
|
|
||||||
|
using (var fileStream = new FileStream(file, FileMode.Create))
|
||||||
|
{
|
||||||
|
var request = new HttpRequest($"http://{_httpBinHost}/redirect/1");
|
||||||
|
request.AllowAutoRedirect = false;
|
||||||
|
request.ResponseStream = fileStream;
|
||||||
|
|
||||||
|
var response = Subject.Get(request);
|
||||||
|
|
||||||
|
response.StatusCode.Should().Be(HttpStatusCode.Redirect);
|
||||||
|
}
|
||||||
|
|
||||||
|
ExceptionVerification.ExpectedErrors(1);
|
||||||
|
|
||||||
|
File.Exists(file).Should().BeTrue();
|
||||||
|
|
||||||
|
var fileInfo = new FileInfo(file);
|
||||||
|
|
||||||
|
fileInfo.Length.Should().Be(0);
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void should_send_cookie()
|
public void should_send_cookie()
|
||||||
{
|
{
|
||||||
|
|
|
@ -121,9 +121,10 @@ namespace NzbDrone.Common.Http.Dispatchers
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (request.ResponseStream != null)
|
if (request.ResponseStream != null && httpWebResponse.StatusCode == HttpStatusCode.OK)
|
||||||
{
|
{
|
||||||
// A target ResponseStream was specified, write to that instead.
|
// A target ResponseStream was specified, write to that instead.
|
||||||
|
// But only on the OK status code, since we don't want to write failures and redirects.
|
||||||
responseStream.CopyTo(request.ResponseStream);
|
responseStream.CopyTo(request.ResponseStream);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue