2010-02-23 5 views
4

Нечетный, я пытаюсь прочитать раздел < Head of >, содержащий множество разных сайтов, и один конкретный тип сервера, Apache, иногда дает код 403 запрещен. Не все серверы apache делают это, поэтому это может быть настройка конфигурации или конкретная версия сервера.System.Net.WebClient запрос получает 403 Запрещено, но браузеры не работают с серверами Apache

Когда я затем проверяю URL-адрес с помощью веб-браузера (например, Firefox), страница загружается штрафом. Код Сорта выглядит следующим образом:

var client = new WebClient(); 
var stream = client.OpenRead(new Uri("http://en.wikipedia.org/wiki/Barack_Obama")); 

Обычно 403 является разрешение доступа не удалось такие вещи, но они, как правило, небезопасных страниц. Я думаю, что Apache фильтрует что-то в заголовках запросов, так как я не собираюсь создавать какие-либо.

Возможно, кто-то, кто знает больше об Apache, может дать мне некоторые идеи о том, чего не хватает в заголовках. Я бы хотел, чтобы заголовки были как можно меньше, чтобы минимизировать пропускную способность.

Благодаря

ответ

9

Попробуйте установить заголовок UserAgent:

string _UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"; 
client.Headers.Add(HttpRequestHeader.UserAgent, _UserAgent); 
+0

Это был намек, что нужно. Благодаря! –

+0

403 также может быть вызвано проблемами TLS. Чтобы проверить, вы должны проверить текст объекта WebException.Response. Или попробуйте добавить это к вашему коду: 'ServicePointManager.SecurityProtocol = (SecurityProtocolType) 3072;' Это заставит TLS 1.2 –

1

Это может быть вопрос заголовка UserAgent, как «thedugas» сказал, или на самом деле ничего браузер молча настроен делать. Например, может возникнуть вопрос не использовать прокси-сервер, который использует браузер, или не использовать правильные учетные данные для прокси-сервера. Это те вещи, которые уже могут быть настроены в браузере, поэтому вы не знаете, что они должны быть выполнены.

2

У меня была аналогичная проблема, и ниже настройки решить его

Client.Headers["Accept"] = "application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*"; 
Client.Headers["User-Agent"] ="Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDC)"; 

 Смежные вопросы

  • Нет связанных вопросов^_^