В настоящее время я пытаюсь загрузить изображение с сайта, который использует .ashx для управления загруженными изображениями. Сайт является «UploadHandler.ashx» и принимает такие параметры, как ширина, высота и идентификатор изображения. Когда я захожу туда в своем браузере, он автоматически загружает картинку для меня. Но когда я пытаюсь загрузить его с помощью HttpWebRequest и файлов cookie, он дает мне изображение размером 1 КБ, а если я изменяю его на .txt, это HTML, который говорит, что объект был перемещен, и направляет меня на страницу входа.
Мой текущий код для скачивания:
void DownloadImage(string onlinepath, string localpath)
{
Stream remoteStream = null;
Stream localStream = null;
HttpWebResponse response = null;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(onlinepath);
request.AllowAutoRedirect = false;
request.CookieContainer = cookie;
response = (HttpWebResponse)request.GetResponse();
request.ServerCertificateValidationCallback +=
delegate (
object sender,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors sslPolicyErrors)
{
return true;
};
if (request != null)
{
if (response != null)
{
remoteStream = response.GetResponseStream();
localStream = File.Create(localpath);
byte[] buffer = new byte[1024];
int bytesRead;
do
{
bytesRead = remoteStream.Read(buffer, 0, buffer.Length);
localStream.Write(buffer, 0, bytesRead);
} while (bytesRead > 0);
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
if (response != null) response.Close();
if (remoteStream != null) remoteStream.Close();
if (localStream != null) localStream.Close();
}
}
Текущий вывод в формате .txt:
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/Login/Index">here</a>.</h2>
</body></html>