Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Распределённые приложения и сеть > Проблема с HttpWebRequest/Response


Автор: TaganMorgul 28.3.2006, 12:45
Доброго времени суток!

Задача. Необходимо перебрать все ссылки на некой вебстранице, с целью определения типа контента( я ищу программно rss feed-ы).
Собственно проблема: Первые два запроса обрабатываются нормально, но на все последующие выдаётся следующее сообщение. "The operation has timed out".

Вот код:
Код

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Url);
req.KeepAlive = false;
req.Method = WebRequestMethods.Http.Head;
req.Timeout = 10000;
req.Proxy = new WebProxy(Proxy_url);
req.Proxy.Credentials = new NetworkCredential(Login,Password);

HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
if (resp.ContentType.IndexOf("xml") >= 0)
                    return true;


Всё это безобразие крутиться в отдельном потоке.
Стоит .NET Framework 2.0.50727

Помогите.... кто чем может!

Автор: arilou 28.3.2006, 12:51
TaganMorgul, прокси тормозит? Без него проверял?

Автор: TaganMorgul 28.3.2006, 13:15
Нет, не проверял. Прога в стадии разработки...
Добавлено @ 13:17
УРАААААА заработало. Вот код:

Код

try
{
WebRequest request = WebRequest.Create(tmp);
(request as HttpWebRequest).ReadWriteTimeout = 30000;
request.Credentials = CredentialCache.DefaultCredentials;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding(1251));
responseFromServer = reader.ReadToEnd();
reader.Close();
dataStream.Close();
}
}
catch (WebException we)
{


Огромное спасибо Евгению Веприкову!

Автор: mr.DUDA 28.3.2006, 13:55
Цитата(TaganMorgul @ 28.3.2006, 12:15 Найти цитируемый пост)
Огромное спасибо Евгению Веприкову!

кто здесь ?... smile

Автор: arilou 28.3.2006, 16:31
... задувает свечку и убегает smile

Автор: sn8p 29.3.2006, 18:09
Цитата(TaganMorgul @ 28.3.2006, 13:15 Найти цитируемый пост)
WebRequest request = WebRequest.Create(tmp);

Расскажите нешарящему. Че надо подключать в C# чтоб ваще юзать эти WebRequest request = WebRequest.Create(tmp); ?
У меня говорит: error CS0246: The type or namespace name 'WebRequest' could not be found (are you missing a using directive or an assembly reference?)

Как ваще это равотает?

Автор: TaganMorgul 8.4.2006, 13:00
Код

using System.Net;


В общем суть в следующем:
WebRequest - объект, который формирует запрос к серверу.
WebResponse - посылает запрос на сервер и ждёт ответа.

А сторка
Код

WebRequest request = WebRequest.Create(tmp);

tmp - переменная, содержащая url сервера.
Какраз и создаёт запрос.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)