最近在做一个项目,需要用C++调用Web service,在Webservice提供的方法属性中加上[SessionEnabled:=true],可以在每次调用之间保存状态。在我的项目中主要是用来保存用户身份验证的状态,就是经过一次验证之后用session记住,不必每次调用方法都进行验证。问题是在web上测试没问题,但在c++上调用却发现完全不起作用。原因是session的保持是需要客户端Cookie支持或通过URI地址在每次调用之间传递Session ID的,而桌面程序不象web那样自动处理Cookie保存和发送的,所以每一次调用都会被当作为一个新的Session进行处理。在.net 托管环境中调用webservice可以很方便地通过CookieContainer的对象来处理和解决这个问题。但对于非托管C++,我在网上搜了半天,找了很多资料,还没有找到相应的方法。问题的解决似乎很简单,关銉的思路在于调用Webservice时,第一次请求时从收到的http soap数据里取出session id并缓存起来,下一次发送请求时以适当的方法将session id一起发送回去就可以了。但是具体如何去实现的呢?郁闷中。。。。。。。。。。。。哎,可怜的C++
希望有高人路过此地,顺便指点迷津,善哉,善哉!!