用c++ builder 的TIdHttp組件Get一個ASP.Net MVC服務器的一個頁面,獲取頁面中Cookie信息,修改後Post到服務器上去。
在本地調試的時候可以獲取到,部署到服務器上就獲取不到Cookie,用FireFox的FireBug打開網頁可以看到Cookie的信息,然後又用Wireshark查看Get數據,發現Cookie有HttpOnly屬性,TIdHttp的CookieManager獲取不到。查找發現在m_IdHttp->Response->RawHeaders中有Cookie的信息,於是提取Cookie,並設置Requst的CustomHeaders中的Cookie的信息。
相關代碼如下:
1 //獲取Cookie 2 AnsiString cookies = m_IdHttp->Response->RawHeaders->Values["Set-Cookie"]; 3 //設置Cookie 4 m_IdHttp->Request->CustomHeaders->AddValue("Cookie",cookies);