Я пытаюсь выполнить вызов CFHTTP с помощью Lucee 4.5. Тестовый код на моей основной рабочей станции в порядке (запуск CF 10), но при копировании точно на ноутбук с Lucee, если он с ошибкой 400 ошибочных ошибочных заголовков отправлено. НижеLucee Soap 400 Ошибка; работает нормально как есть в CF
#XML Being Passed
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<m:Authenticate xmlns:m="http://foo.com/2005/">
<m:userName>xxxxx</m:userName>
<m:password>xxxxx</m:password>
</m:Authenticate>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
#Partial Codebase; 'variable' is XML posted above
<cfhttp url="http://xxxxxxx?WSDL" method="post" result="theCFHTTP" compression="false">
<cfhttpparam type="HEADER" name="Content-Type" value="text/xml; charset=utf-8">
<cfhttpparam type="HEADER" name="Accept" value="application/soap+xml, application/dime, multipart/related, text/*">
<cfhttpparam type="HEADER" name="User-Agent" value="Axis/1.1">
<cfhttpparam type="HEADER" name="Cache-Control" value="no-cache">
<cfhttpparam type="HEADER" name="Pragma" value="no-cache">
<cfhttpparam type="HEADER" name="SOAPAction" value="http://foo.com/2005/Authenticate">
<cfhttpparam type="HEADER" name="Content-Length" value="#len(soap)#">
<cfhttpparam type="xml" name="body" value="#soap#">
</cfhttp>
Я очень новый для Lucee и никогда не использовал Railo так что если есть уникальные кодировки или другие параметры конфигурации, которые должны быть сделано, я бы признателен за помощь.
Редактировать: Дальнейшие испытания показали, что я не могу использовать CFHTTP на любой странице за пределами самого ноутбука. Все внешние URL-адреса дают сообщение с плохим заголовком 400.
Я также добавил compression=false
, чтобы Lucee не отправлял GZip-контент в адрес запроса.
возвращаемые заголовки моего рабочего станка:
- кодирокой: UTF-8
- Заголовок: HTTP/1.1 200 OK Cache-Control: частный, макс возраста = 0 Content-Type: текст/XML; charset = utf-8 Сервер: Microsoft-IIS/8.0 X-AspNet-версия: 4.0.30319 X-Powered-By: ASP.NET Дата: ср, 25 марта 2015 14:58:03 GMT Подключение: закрыть Content-Length: 603
- Mimetype: текст/XML
возвращаемые заголовки неисправного станка:
- Charset: US-ASCII
- Заголовок: HTTP/1.1 400 Bad Request Content -Type: te х/html; Charset = US-ASCII Сервер: Microsoft-HTTPAPI/2,0 Дата: Ср, 25 марта 2015 15:06:18 GMT Подключение: закрыть Content-Length: 339
- Mimetype: текст/html
19 мая EDIT:
Я проверил каждый из следующих корректировок отдельно в вызове CFHTTP на основе ответа Фабия:
- Я удалил заголовок параметров Content-Type, или
- Изменен параметры тела от «XML» в «тело»
Ни работал, хотя мое сообщение об ошибке изменилось к 400 Bad Request. Дамп вызова CFHTTP говорит, что я отправляю неверный XML, хотя независимые проверки подтверждают, что он действительно действителен. Ошибка при вызове аутентификации маркера.
Поскольку у вас есть тот, который работает и тот, который не делает. Я запустил бы ваш инструмент мониторинга сети (инструменты браузера могут это сделать) и сравните заголовки, отправленные с рабочего сервера и нерабочего сервера. Затем сообщите о том, что вы видите, и мы пойдем оттуда. –
Я добавил ваш запрос. –
Мы больше заинтересованы в заголовках запросов, поскольку они, по-видимому, являются причиной этой проблемы. Вы можете сравнить их и включить то, что найдете. Также есть ли межсетевой экран, прокси-сервер или что-то еще между неудачной машиной и Интернетом? Вы можете просматривать веб-сайт на том же компьютере с помощью браузера? –