Мне было поручено найти способ сохранять файлы по ссылке на чью-то амазонку. Эти файлы представляют собой вложения, загруженные в систему продажи билетов, и когда я использовал их API для извлечения билета, мне дается ссылка, подобная приведенной ниже (я удалил все личные данные и заменил их на XXXXX)
Как видите, срок действия ссылок истекает через 1 день. Я соединяю 2 API вместе, и мне нужно иметь возможность загрузить фактический файл во второй API, а не просто размещать ссылку, которая истекает через день. Я попытался использовать Webclient downloadfileAsync, но все, что я получил, - это пустой файл. Я могу перейти по ссылке в моем браузере и щелкнуть правой кнопкой мыши, сохранить изображение как, поэтому я знаю, что это возможно, но мне не повезло программно. Ниже приведен фрагмент кода, который я использую в настоящее время, чтобы попытаться загрузить его.
using (WebClient wc = new WebClient())
{
wc.DownloadFileAsync(new System.Uri(url), "image.jpg");
}
Любое понимание или помощь были бы потрясающими.
Заранее спасибо!
Звучит многообещающе, как вы подделали сервер, чтобы думать, что вы браузер?
Есть ли шанс, что файл был пуст, потому что вы запросили его до завершения асинхронной загрузки?
Я тоже думал об этой возможности, я просто смотрел размер файла в проводнике. Хотя я уделил этому хорошую минуту или около того. Я собираюсь протестировать неасинхронный запуск и посмотреть, что произойдет ... Хорошо, я попробовал. ЭТО СРАБОТАЛО!!!!





Я смог заставить это работать, не используя асинхронную версию DownloadFile. Спасибо всем, кто помог мне решить эту проблему.
Однажды у меня была аналогичная проблема, когда я что-то загружал программно - это работало в браузере, но не в моем коде. Я обнаружил, что мне пришлось подделать пользовательский агент моего запроса, чтобы сервер увидел меня как браузер.