0 / 0 / 0
Регистрация: 07.10.2009
Сообщений: 9
1

(403) Запрещено.

09.11.2009, 22:40. Показов 16677. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C#
1
2
WebClient WebClient = new WebClient();
WebClient.DownloadFile(downloadLink, newItemLocalPath);
"Удаленный сервер возвратил ошибку: (403) Запрещено."

Как сделать чтобы такая ошибка не возникала?? Через браузер файл скачивается без проблем..
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2009, 22:40
Ответы с готовыми решениями:

HTTPS HttpWebResponse (403) Forbidden
Необходимо достучаться до сайта. Отправить сообщение и получить ответ. Предварительно идет...

Ошибка 403 при UploadFile
пишу webClient.UploadFile, выдаёт (403) Запрещено

HttpWebRequest любой запрос возвращает 403
WebRequest reqGET = (HttpWebRequest)WebRequest.Create("https://www.fl.ru/"); ...

Как получить ответ сервера,несмотря на 403 ошибку?
Собсно сабж,после некоего обновления на одном форуме при гет запросе(из программы) на форум выходит...

5
0 / 0 / 0
Регистрация: 07.10.2009
Сообщений: 9
12.11.2009, 03:37  [ТС] 2
Неужели никто не стыкался с такой проблемой??
0
1 / 1 / 0
Регистрация: 12.11.2009
Сообщений: 5
12.11.2009, 14:04 3
ткну пальцем в небо, но может проблема со ссылкой, попробуй задать типа file:///d:/1.txt будет работать или нет?
0
0 / 0 / 0
Регистрация: 07.10.2009
Сообщений: 9
12.11.2009, 19:35  [ТС] 4
К сожалению, нет.. С ссылкой все в порядке - из браузера по той же ссылке скачивается.. И с локальным путем тоже все в порядке..
0
1 / 1 / 0
Регистрация: 12.11.2009
Сообщений: 5
13.11.2009, 07:58 5
url - адрес файла или странички закачки
webpage - если страничка то загрузить ее текст в эту переменную

C#
1
  client.DownloadFile(url, loc);
- загрузить файл по пути loc



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
namespace DownloadFile
{
    class Class1
    {
        [STAThread]
        static void Main(string[] args)
        {
            try
            {
                System.Net.WebClient client = new System.Net.WebClient();
                string url = @"http://www.goroskop.ru/publish/open_article/36033/";
                string webpage=client.DownloadString(url);
                string loc = @"D:\qwerty_copy.html";
                client.DownloadFile(url, loc);
                Console.ReadKey();
            }
 
        }
    }
}
(идею с недалекой темы взял еще вчера)

- еще не имеет смысла использовать код загрузка файла в строку если это не страничка а к примеру архив... не забудь за комментировать одну из этих функций

- и на последок, скорее всего не использован символ @ перед строкой указания пути
0
6 / 6 / 1
Регистрация: 05.03.2010
Сообщений: 3
06.05.2010, 17:11 6
Лучший ответ Сообщение было отмечено как решение

Решение

adamst, да это не то всё.

Тут проблема скорей всего в разных механизмах работы браузера и просто WebClient'a.
Например то, что браузер может сохранять куки, имеет поле User-Agent (по которому возможно сайт и выдаёт доступ на скачивание страницы) и др.

Сам столкнулся с такой проблемой и пока ещё не разобрался в чём дело, но думаю стоит копать в этом направлении.

Ещё, конечно, можно использовать компонент WebBrowser, но что-то он мне не очень-то нравится - памяти много занимает, и вообще почему-то временами перестаёт грузить страницы, когда я пытаюсь делать это программно. Пришлось от него отказаться.

Добавлено через 19 часов 2 минуты
Нашёл.
Решение не совсем очевидное, но простое - добавить у WebClient нужные заголовки.

Делается вот как:

C#
1
2
3
4
5
6
string userAgentString = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; .NET4.0C; .NET4.0E)";
 
WebClient w = new WebClient();
w.Headers.Add("user-agent", userAgentString);
 
w.DownloadFile("http://wwwmysite.ru/index.htm", "1.htm");
где userAgentString - строка User-Agent браузера. Можно взять строку и от другого браузера.
6
06.05.2010, 17:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.05.2010, 17:11
Помогаю со студенческими работами здесь

Авторизация через twitter api завершается с ошибкой 403
Не могу авторизоваться в твиттере Uri uri = new...

Вложенный запрос вернул больше одного значения, это запрещено
SqlCommand sqlcmd = new SqlCommand("Товары_Insert", Form1.connect); SqlCommand...

MSXML2.XMLHTTP возвращает 403 Forbidden
в локальной сетке стоит мой комп, на котором пытаюсь выполнить следующий скрипт <% Set...

При аплоде файла в IFRAME выдается ошибка HTTP Error 403 - Forbidden Internet Explorer.
При аплоде файла в IFRAME выдается ошибка HTTP Error 403 - Forbidden Internet Explorer. Что это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru