2011-09-20 17 views
1

使用HttpComponents項目中的Apache HttpClient。我已經添加了自定義信任和密鑰管理器來處理雙向身份驗證(我的信任管理器接受所有內容,並且我的密鑰管理器始終發送相同的客戶端證書)。
我發送以下兩個要求:
1.使用/resource.html(這一個重定向使用http-當量至sth.dll = 「刷新」 元標記)
2.獲取/scripts/sth.dll

我這樣做是爲了模擬用於連接到sth.dll服務的IE8行爲(和它的工作原理)。 如果我要直接連接到sth.dll服務(使用瀏覽器或httpclient) 我得到500錯誤:無法找到指定的路徑。不幸的是,當我使用上述方法和手動重定向時,我仍然收到500錯誤

我的問題是我還需要模擬以獲得此服務的工作?
問題可能出在IE瀏覽器重複使用1次請求中握手的數據並且我的httpclient做了兩次握手的事實?如果是,那麼如何強制httpclient重用ssl informaton

模擬IE8行爲的Java HttpClient

我沒有訪問服務器的機會,並且有可能要求服務提供商尋求幫助(因爲他們只支持通過ie8訪問)。服務器是IIS/6.0。沒有可見的cookie(我使用Fiddler獲取來自IE8的流量信息)。

有人可以給我一些新的想法在哪裏看?

回答

0

我認爲你是正確的握手。

當瀏覽器第一次連接到服務器HTTP會話創建。它的ID作爲特殊的cookie返回給客戶端。例如,在基於Java的服務器的情況下,它是jsessionid。然後,客戶端在發送進一步請求時發送烹飪。一探究竟。你應該這樣做。我希望如果你在第二個請求中發送cookie(獲取dll),一切都將起作用。

祝你好運。

+0

我沒有看到任何cookie發送給我後,最初的請求。 fiddler和httpclient日誌有可能忽略這些信息嗎?我知道標準會話cookie是稍後創建的 - 我沒有提到這一點,但在第二次連接之後,我需要執行基於表單的身份驗證,然後從基於ASP的服務器應用程序中獲取適當的會話Cookie。但在此之前,我需要確保該服務已準備好與我交談:) –