У меня есть (как я полагаю) проблема с файлом cookie с cfhttp
под Railo-Express-4.1.1.009.CFHTTP Cookie Issue
Мой код выполняет двухэтапный вызов http. Первый шаг выполняет авторизацию с удаленным приложением. В случае успеха, удаленный сервер возвращает куки авторизации, который извлекается и передается на второй вызов, как так:
<cfhttp url="http://remoteserver/targetPath" port="xxxx" method="get" result="Local.response" throwonerror="true" redirect="false">
<cfhttpparam name="Action" value="Ping" type="URL" />
<cfhttpparam name="mansession_id" value="#Local.result.authCookie#" type="cookie" />
</cfhttp>
вызова HTTP успешен, но ответ по существу говорит, что я не уполномочен. (Это то, что «разрешенное разрешение» на самом деле означает в этом контексте).
<response='Error' message='Permission denied'... />
Однако тот же самый код (работать с той же самой коробки) удачен CF9:
<response='Success' ping='Pong' ... />
я дважды проверил заголовки ответа от первого вызова cfhttp, и проверил я прохождение правильный # Local.result.authCookie # значение второго вызова:
- CFHTTP Результат =
set-cookie : mansession_id="932a4086";
- Local.result.authCookie =
AUTHCOOKIE string 932a4086
Поскольку все то же самое, кроме двигателя, работающего на CFML, я пришел к выводу cfhttp
, вероятно, не передавая печенье правильно. Я пробовал несколько вещей, но на данный момент у меня нет идей. Любые идеи о том, как решить проблему или продолжить ее устранение, будут весьма признательны.
Update:
я решил попробовать разные версии Railo (с версией Express, делает это так легко) и обнаружил, что код работает под 3.3.3.001 (но не 4.0.4.001). Так что что-то должно быть сломано в 4.x.
Хорошие идеи. Сегодня мне нужно что-то выпустить, но завтра я попробую попробовать. – ihmg
Скрипач сделал трюк. Вкладка «Куки» показала, что файл cookie, который я установил, не передается одинаково. Версия 3.x установила один файл cookie, но 4.x создал несколько файлов cookie. Все еще изучая, является ли это кодом или проблемой Railo (вероятно, код), но Fiddler очень помог. Еще раз спасибо!(Мне тоже хотелось бы проголосовать за это, но у меня пока не хватает репутации ...) – ihmg
Очень рад, что сработал для вас! Хотя это не идеально, если вам нужен более тонкий контроль над тем, что вы отправляете, Railo использует HTTPClient под капотом, поэтому вы можете почти наверняка использовать это вместо CFHTTP для выпуска запросов: http://hc.apache.org/httpcomponents- клиент-га/quickstart.html – barnyr