Microsoft.XMLHTTP在Lotusscript中清除cookie

时间:2014-05-06 06:15:45

标签: cookies com lotus-notes lotusscript xmlhttprequest

我有一个创建Microsoft.XMLHTTP对象的Lotusscript代理 自上次询问以来,该对象访问servlet并接收事务。

这是做了什么:

Set objHttp = CreateObject("Microsoft.XMLHTTP")     
objHttp.open "POST", theUrl, False, "", ""  
objHttp.setRequestHeader "Content-type", specific_for_customer  
objHttp.send(theReq)    
headers = objHttp.getAllResponseHeaders()   
response = objHttp.responseText     
'...do the stuff...     
Set objHttp=Nothing

当你保持会话开放并提出问题时,它非常有效。 但是,如果在我的情况下,我的目的是每5分钟运行一次这个代理,我就会遇到问题。

我按预期关闭了对象。 当我再次启动代理时,servlet不接受我的访问权限,因为我在请求中有一个会话cookie(并且它不被接受)。

在我的世界中,当我做Set objHttp = Nothing时,应该清除5分钟前同意的servlet和我的代码。 我也找不到饼干。 我想这是以某种特殊/奇怪的方式,Domino代理管理器保留cookie(但在哪里),并在我再次连接时尝试使用它。

在与servlet进行会话时,我可以找到cookie的值,但是下次代理运行时我无法连接。

再次建立会话的唯一方法是重新启动代理管理器。

我已经尝试过几个查找并删除co​​okie的内容(无法找到它)。

在我解决这个问题的方法中,我甚至复制了代理,然后运行了该代理,并且我无法访问servlet,所以代理管理器在这里是可疑的......

也许有人有类似的问题。

所以..

  • 如何清除第一个代理管理器中的cookie 我关闭XML-object时应该清除地点
  • 如何清除代理管理员"内存"忘记一切
  • 如何从代码或计划
  • 重新启动代理管理器

希望以某种方式提供一些帮助

2 个答案:

答案 0 :(得分:2)

设置objHTTP =不仅仅取消引用对象。它不会卸载提供该对象或其加载的其他DLL的DLL(在这种情况下,它是Microsoft基于IE的堆栈的一大块)。它不会清除这些DLL分配给该对象的内存。由于AMGR是加载这些DLL的进程,并且AMGR仍在运行,它与启动浏览器,连接到该站点,打开一堆其他浏览器选项卡,用会话cookie关闭选项卡几乎相同等了5分钟,然后打开一个新标签然后回到那个站点。饼干还在那里。

设置objHTTP = no就像关闭标签一样。微软认为这样做可以帮到你。就像使用浏览器一样,处理此问题的最佳方法是退出网站。如果站点提供了注销URL,请在设置objHTTP = nothing之前连接到该URL。这应该让服务器为你的cookie无效。

答案 1 :(得分:0)

您可以转到HTTP Communication的Java。链接中的示例具有可重用的代码,并将其很好地包装到LS2J中。另外:它将在所有平台上运行