Используйте HttpWebRequest для загрузки веб-страниц без ключевых проблем - PullRequest
1 голос
/ 09 ноября 2008

Используйте HttpWebRequest для загрузки веб-страниц без ключевых проблем

Ответы [ 4 ]

2 голосов
/ 09 ноября 2008

[обновление: я не знаю почему, но оба приведенных ниже примера теперь работают нормально! Первоначально я также видел 403 на примере page2. Может быть, это была проблема с сервером?]

Во-первых, WebClient проще. На самом деле, Я видел это раньше . Оказалось, что чувствительность к регистру в URL при доступе к википедии; убедитесь, что вы использовали тот же случай в своем запросе к википедии.

[обновлено] Как отмечают Бруно Конде и Гимел, использование% 27 должно помочь сделать его согласованным (прерывистое поведение предполагает, что, возможно, некоторые серверы Википедии настроены иначе, чем другие)

Я только что проверил, и в этом случае проблема с кейсом, похоже, не является проблемой ... однако, , если это сработало (это n't ), это будет самый простой способ запросить страницу:

        using (WebClient wc = new WebClient())
        {
            string page1 = wc.DownloadString("http://en.wikipedia.org/wiki/Algeria");

            string page2 = wc.DownloadString("http://en.wikipedia.org/wiki/%27Abadilah");
        }

Боюсь, я не могу думать, что делать с ведущим апострофом, который разрушает вещи ...

1 голос
/ 26 декабря 2009

Я уверен, что в ОП уже отсортировано это, но я только что столкнулся с такой же проблемой - прерывистые 403 при загрузке из Википедии через веб-клиент. Установка заголовка пользовательского агента сортирует его:

client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
1 голос
/ 09 ноября 2008

Попробуйте экранировать специальные символы, используя Процент кодирования (пункт 2.1) . Например, одиночная кавычка представлена ​​в URL-адресе %27 ( IRI ).

1 голос
/ 09 ноября 2008

Я также получил странные результаты ... Во-первых,

http://en.wikipedia.org/wiki/'Abadilah

не работает и после нескольких неудачных попыток начинает работать.

Второй URL,

http://en.wikipedia.org/wiki/'t_Zand_(Alphen-Chaam)

всегда терпел неудачу для меня ...

Апостроф, кажется, ответственен за эти проблемы. Если вы замените его на

% 27

все URL работают нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...