Ошибка соединения CFHTTP

Просто чтобы дать вам краткое представление о том, чего я пытаюсь достичь.

Мне нужно очистить значение за каждый месяц с общедоступного веб-сайта. Например, для определенного статуса в мае месяце 2014 года; ОБЩЕЕ значение равно 224 481 (в нижней правой части страницы). Мне нужно зафиксировать это значение и сохранить в базе данных для каждого месяца. Следующий URL необходимо будет запускать, изменяя параметры для каждого месяца. Веб-сайт VEEC с параметрами

Всего за май

Чтобы добиться этого, я пытаюсь получить HTML-код с помощью CFHTTP следующим образом, а затем с помощью JSOUP будет очищать предполагаемое значение из возвращенного HTML-кода перед сохранением в базе данных.

<cfset f_url = "https://www.veet.vic.gov.au/Public/PublicRegister/Search.aspx">
    <cfhttp method="GET" url="#f_url#">
            <cfhttpparam type="Header" name="Accept-Encoding" value="*">
            <cfhttpparam type="Header" name="TE" value="deflate;q=0">
            <cfhttpparam name="CreatedFrom" type="URL"  value="#StartDate#">
            <cfhttpparam name="CreatedTo" type="URL"  value="#EndDate#">
            <cfhttpparam name="Status" type="URL"  value="PRP,PRV">
    </cfhttp>
<cfdump var="#cfhttp#">

Я получаю сообщение об ошибке connection failure при попытке запустить фрагмент кода.

Пожалуйста, сообщите, если есть альтернативный способ сделать то же самое. Это должно быть реализовано только для сбора данных на стороне разработки, а не для использования в производстве.

Редактировать (не хочу удалять вопрос): мне пришлось использовать интернет-прокси для доступа к веб-сайту в теге CFHTTP, чтобы он работал. Плохо, что не проверил это раньше. Надеюсь, это может помочь кому-то в будущем. Всем спасибо.


person Gaurav S    schedule 29.05.2014    source источник
comment
Работает на меня. Как выглядят ваши переменные StartDate и EndDate? Может ли сервер, на котором вы работаете, подключиться к этому URL-адресу?   -  person duncan    schedule 29.05.2014
comment
Даты объявляются в обычных тегах csfet. Да, хотя URL-адрес доступен с сервера CF; Я думаю, что проблема связана с IIS. Любые мысли о том же и способах отладки этого?   -  person Gaurav S    schedule 29.05.2014
comment
заявлено как? Как строки типа 31-May-2014, как даты с использованием CreateDate(), ...? Эта статья может быть актуальной: http://www.coldfusionmuse.com/index.cfm/2013/7/22/coldfusion.iis8.cfhttp   -  person duncan    schedule 29.05.2014
comment
Извините, да только строками. Спасибо за ссылку, Дункан, я поработаю над ней завтра.   -  person Gaurav S    schedule 29.05.2014
comment
Что заставляет вас думать, что это проблема, связанная с IIS?   -  person Scott Stroz    schedule 29.05.2014
comment
В прошлом мы сталкивались с проблемами, когда некоторые почтовые серверы блокировали электронную почту на основе идентификатора почтовой программы CFMail по умолчанию. Сервер приложений ColdFusion. Вы пытались изменить пользовательский агент, если сервер блокирует запросы от пользовательского агента CFHTTP по умолчанию? (Значение по умолчанию — Cold Fusion.) Кроме того, я бы рекомендовал использовать инструменты разработчика Firefox или Chrome, чтобы вы могли просматривать запрос GET, выполненный из вашего браузера.   -  person James Moberg    schedule 30.05.2014
comment
Другой вариант — использовать jsoup для получения HTML вместо использования ColdFusion. Дополнительную информацию об этом можно найти по адресу: jsoup.org/cookbook/input/load. -документ-из-url   -  person James Moberg    schedule 30.05.2014
comment
@duncan Ссылка, которую вы упомянули, говорила о SNI и IIS 8. В заголовке ответа ссылки упоминается, что веб-сайт размещен на IIS7, поэтому не удалось выяснить проблему на основе этой ссылки.   -  person Gaurav S    schedule 02.06.2014
comment
@JamesMoberg Спасибо, я попытался добавить пользовательский агент как Mozilla; все еще с той же проблемой. Кроме того, jsoup connect также дал мне проблему сбоя подключения. Не уверен, правильно ли я его использую. Я использую объект jsoup внутри тегов ‹cfscript›.   -  person Gaurav S    schedule 02.06.2014
comment
Кроме того, я импортировал и установил публичный сертификат с сайта geotrust.com/resources/root-certificates поскольку веб-сайт, на который я пытаюсь попасть, использует сертификат Geotrust. Но все еще с той же проблемой. Я делаю это правильно?   -  person Gaurav S    schedule 02.06.2014


Ответы (1)


Звучит как классический безопасный сертификат.

CF имеет ограниченное доверие к безопасным сертификатам. Если сертификат SSL в месте назначения, которому вы звоните, не нравится CF, вы получите сообщение об ошибке соединения. Что вам нужно сделать, так это импортировать сертификат SSL в хранилище ключей Java, которое использует CF.

Вот старая версия того, как это сделать: http://mkruger.cfwebtools.com/index.cfm?mode=entry&entry=8E44925A-B73D-E3AD-709D4E02FD6D4588

person Mark Gregory    schedule 01.06.2014
comment
Спасибо за ссылку, Марк. Это то, что я сделал по ссылке. Я импортировал общедоступный сертификат base-64 с размещенного веб-сайта и добавил сертификат с помощью keytool. Все еще с той же проблемой. Я что-то упускаю? - person Gaurav S; 02.06.2014