Запрещенный WebClient 403

Я могу загрузить это вручную в IE.

http://scholar.google.com/scholar.ris?q=info:j8ymU9rzMsEJ:scholar.google.com/&output=citation&hl=zh-CN&as_sdt=2000&oe=GB&ct=citation&cd=0

Но, использование следует коду

WebClient client = new WebClient();
client.DownloadFile(address, filename);

Выставочное исключение: 403 запрещенных

Что случилось? Как я могу сделать это?

другие

http://scholar.google.com/scholar.ris?q=info:sskrpr5jlLwJ:scholar.google.com/&output=citation&hl=zh-CN&as_sdt=2000&oe=GB&ct=citation&cd=1

15
задан Tasos K. 4 November 2018 в 23:24
поделиться

2 ответа

Я получаю 403 в IE, думаю, вам нужно войти в систему, чтобы получить ресурс. Учетные данные вашего браузера могут быть кэшированы, но ваше приложение не предназначено для входа в систему. Или вы вошли в Google в своем браузере - попробуйте выйти и посмотрите, есть ли у вас доступ…

1
ответ дан 30 November 2019 в 23:50
поделиться

Перед вызовом метода DownloadFile необходимо установить соответствующие заголовки http.

WebClient webClient = new WebClient();
webClient.Headers.Add("???", "???");
webClient.Headers.Add("???", "???");
webClient.Headers.Add("???", "???");
webClient.DownloadFile(address, filename);

Поставить правильные значения вместо этих вопросительных знаков может быть непросто. Вам нужно будет загрузить Fiddler или какую-либо другую программу или расширение веб-браузера, чтобы узнать, какие заголовки http отправляются в Google вашим веб-браузером, и в основном воспроизвести тот же запрос в вашей программе.

1
ответ дан 30 November 2019 в 23:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: