Я пытаюсь выполнить вызов CFHTTP, используя Lucee 4.5. Тестовый код на моей основной рабочей станции в порядке (работает CF 10), но при копировании именно на ноутбук с Lucee, если происходит сбой с ошибкой 400, отправляются недопустимые заголовки. Смотри ниже
#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 по URL-адресу запроса.
Заголовки возврата моей рабочей машины:
- Кодировка: utf-8
- Заголовок: HTTP/1.1 200 OK Cache-Control: private, max-age=0 Content-Type: text/xml; charset=utf-8 Сервер: Microsoft-IIS/8.0 X-AspNet-Версия: 4.0.30319 X-Powered-By: ASP.NET Дата: среда, 25 марта 2015 г., 14:58:03 по Гринвичу Соединение: закрыть Длина содержимого: 603
- MIME-тип: text/xml
Заголовки возврата неисправной машины:
- Кодировка: us-ascii
- Заголовок: HTTP/1.1 400 Bad Request Content-Type: text/html; charset=us-ascii Сервер: Microsoft-HTTPAPI/2.0 Дата: среда, 25 марта 2015 г., 15:06:18 по Гринвичу Соединение: закрыть Content-Length: 339
- MIME-тип: text/html
19 МАЯ ИЗМЕНИТЬ:
Я протестировал каждую из следующих настроек отдельно в вызове CFHTTP на основе ответа Фабио:
- Я удалил параметр заголовка Content-Type или
- Параметр тела изменен с «xml» на «тело».
Ни один из них не работал, хотя мое сообщение об ошибке изменилось на 400 Bad Request. Дамп вызова CFHTTP говорит, что я отправляю недопустимый XML, хотя независимые проверки подтверждают, что он действительно действителен. Сбой при вызове аутентификации токена.