Ошибка при использовании cfhttp для извлечения содержимого страницы из битового URL-адреса

Я использую cfhttp (Lucee Server) для очистки содержимого страницы с URL-адреса следующим образом:

<cfhttp url="#libs.originalAdPage#" method="GET" />

Затем я помещаю этот контент в div на своей странице.

Этот код давно работает.

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

Если я использую страницу с сокращенным URL-адресом из linkedin, страница очищается и правильно отображается в div.

<cfhttp url="http://bit.ly/1NPhPgc" method="GET" />

Но если я выполняю идентичный вызов cfhttp на странице Indeed.com, сокращенной до битового URL-адреса, я получаю сообщение об ошибке сбоя подключения.

<cfhttp url="http://bit.ly/1RQvlim" method="GET" />[![cfdump of connection failure][1]][1]

Если я открою этот URL-адрес прямо в браузере, страница будет отображаться правильно.

Любые идеи очень приветствуются.

Спасибо,

Майкл


person Michael BW    schedule 19.10.2015    source источник


Ответы (1)


У меня нет доступа к серверу Lucee для тестирования, однако cfhttp на сервере ColdFusion отлично работает для обоих этих битовых URL-адресов. cfhttp следует за перенаправлением, а FileContent содержит страницу действительно.com, как и следовало ожидать.

Проверяли ли вы, что произойдет с URL-адресом Bitly Indeed, если вы запретите cfhttp автоматически следовать перенаправлениям, чтобы вы могли отлаживать и отслеживать перенаправления вручную? то есть

<cftry>
    <cfhttp url="http://bit.ly/1RQvlim" method="GET" redirect="no" />
    <cfdump var="#cfhttp.responseHeader#" />
    <cfhttp url="#cfhttp.responseHeader.Location#" method="GET" />
    <cfdump var="#cfhttp#" label="cfhttp2" />
<cfcatch>
    <cfdump var="#cfcatch#" label="cfcatch" />
</cfcatch>
</cftry>

Indeed.com обращает внимание на поисковые роботы и пользовательские агенты — просто просмотрите их robots.txt для подтверждения. этого.

Есть ли у вас доступ к другому серверу для тестирования на случай, если есть что-то специфическое для реализации Lucee cfhttp или для вашего IP-адреса (например, внесенный в черный список из-за всей очистки)?

Вы пытались настроить пользовательский агент cfhttp и/или любые другие заголовки в соответствии с https://stackoverflow.com/questions/2942290/how-to-emulate-a-real-http-request-via-cfhttp

person Sev Roberts    schedule 19.10.2015
comment
Я проверил ваш код с помощью cftry/cfcatch вокруг вызова cfhttp, и он работал на всех URL-адресах. Единственное объяснение, которое у меня есть, — это дополнительное время, затраченное на запуск кода сначала без перенаправления, а затем на извлечение содержимого файла. Я очень счастлив. Сев, спасибо большое - person Michael BW; 20.10.2015