.Net - загрузка нескольких страниц с веб-сайта с одним запросом DNS

StackOverflow https://stackoverflow.com/questions/2699230

Вопрос

Я использую HTTPREQUEST, чтобы загрузить несколько страниц с веб-сайта (в цикле). Упрощение это выглядит так:

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(
            "http://sub.domain.com/something/" + someString
        );

HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

//do something

Я не совсем уверен, но каждый запрос, похоже, решает адрес снова (я не знаю, как тестировать, если я прав). Я хотел бы увеличить его немного и решить адрес один раз, а затем повторно использовать его для всех запросов. Я не могу выработать, как заставить Httprequest использовать его, хотя.

Я попробовал использовать DNS.Geethostaddresses, преобразуя результат в строку и передаю его в качестве адреса к httpwebrequest.Create. К сожалению, сервер возвращает ошибку 404, затем. Мне удалось Google, вероятно, потому что заголовок «Host» HTTP-запроса не соответствует тому, что ожидает сервера.

Есть ли простой способ решить это?

Это было полезно?

Решение

Я сомневаюсь, что DNS не кэшируется уже честно, но есть способ сделать то, что вы спрашиваете.

После создания запроса с IP-адресом установите Хозяин Свойство на нем к DNS-имени. Это должно решить вашу 404 задачу.

То, что может помочь вам ускорить ваши несколько запросов, это установить Keepalive. Имущество правда. Это будет держать соединение открыть и позволить вам сделать несколько запросов без предварительного восстановления соединения каждый раз.

Другие советы

404 определенно из-за «заголовка хоста» сайта - тысячи сайтов могут быть размещены на одном IP-адресе, а веб-сервер использует домен для выяснения, какой вы хотите.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top