用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);