【问题标题】:Microsoft.XMLHTTP clearing cookie in LotusscriptLotusscript 中的 Microsoft.XMLHTTP 清除 cookie
【发布时间】:2014-05-06 06:15:44
【问题描述】:

我有一个创建 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 和我的代码的会话 cookie。 我也找不到饼干。 我想这就是 Domino 代理管理器以某种特殊/奇怪的方式保存 cookie(但在哪里)并在我再次连接时尝试使用它。

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

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

我已经尝试了几件事找到并删除co​​okie(找不到它)。

在解决此问题的方法中,我什至复制了代理,然后确实运行了该代理,但我无法访问 servlet,因此代理管理器是这里的嫌疑人...

也许有人遇到过类似的问题。

所以..

  • 如何从代理管理器清除 cookie 当我关闭 XML 对象时应该清除地方
  • 如何清除代理经理的“记忆”以忘记一切
  • 如何从代码或计划中重新启动代理管理器

希望能得到一些帮助

【问题讨论】:

    标签: cookies com lotus-notes lotusscript xmlhttprequest


    【解决方案1】:

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

    设置 objHTTP=nothing 就像关闭选项卡一样。微软认为他们这样做是在帮您一个忙。就像使用浏览器一样,处理此问题的最佳方法是退出该站点。如果站点提供注销 URL,请在设置 objHTTP=nothing 之前连接到它。这应该让服务器为您使 cookie 无效。

    【讨论】:

    • 谢谢,这是我的猜测,但希望不是真的 ;-)
    【解决方案2】:

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

    【讨论】:

    • 我试图避免改变方向,因为“其他东西”已经存在...当您的博客再次备份时,我会查看您的链接。
    • 更多包含头痛的“其他东西”并不能减轻疼痛。处理死马的最佳建议(比如我的服务器有死硬盘):卸载。
    猜你喜欢
    • 1970-01-01
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    • 2017-07-15
    • 2014-01-03
    相关资源
    最近更新 更多