我在Railo-Express-4.1.1.009下使用cfhttp
(我認爲是)Cookie問題。CFHTTP Cookie問題
我的代碼執行兩步http調用。第一步執行遠程應用程序的授權。如果成功,則遠程服務器返回的授權cookie,它被提取出來並傳遞給第二個呼叫,像這樣:
<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
可能不正確,將Cookie。我已經嘗試了很多東西,但是在這一點上我沒有任何想法。任何想法如何解決問題或進一步排除故障將不勝感激。
更新:
我決定嘗試不同的版本Railo的(因爲Express版本做起來很簡單),發現代碼3.3.3.001(但不是4.0.4.001)下工作。所以在4.x中必須破解一些東西。
好主意。今天我必須得到一些東西,但明天我會試試。 – ihmg
提琴手做的伎倆。 Cookie標籤顯示我設置的cookie沒有以相同的方式傳輸。 3.x版本設置了一個cookie,但4.x創建了多個cookie。仍在研究它是代碼還是Railo問題(可能是代碼),但是Fiddler的幫助非常大。再次感謝!(我也很想投票,但是我沒有足夠的代表......) – ihmg
非常高興爲你效勞!雖然這並不理想,但如果您需要對發送的內容進行更好的控制,Railo會在後臺使用HTTPClient,所以您幾乎可以肯定會使用它來代替CFHTTP來發出請求:http://hc.apache.org/httpcomponents-客戶-GA/quickstart.html – barnyr