Java HttpClient模拟IE8行为

时间:2011-09-20 12:31:31

标签: java apache-httpclient-4.x

我正在使用来自HttpComponents项目的Apache HttpClient。我已经为它添加了自定义信任和密钥管理器来处理双向身份验证(我的信任管理器接受所有内容,而我的密钥管理器始终发送相同的客户端证书)。
我发送了两个以下请求:
1.获取/resource.html(这个使用http-equiv =“刷新”元标记重定向到sth.dll)
2.获取/scripts/sth.dll

我这样做是为了模拟用于连接到sth.dll服务的IE8行为(并且它可以工作)。 如果我ty直接连接到sth.dll服务(使用浏览器或httpclient)  我得到500错误:找不到指定的路径。不幸的是,当我使用上述方法进行手动重定向时,我仍然会收到500错误 我的问题是我还需要模仿以使这项服务有效吗? 是否有可能问题在于IE重用1个请求中的握手数据而我的httpclient做了两次握手?如果是,那么如何强制httpclient重用ssl informaton

我无法访问服务器并且可以向服务提供商寻求帮助(因为他们只支持通过ie8访问)。服务器是IIS / 6.0。没有可见的cookie(我用Fiddler来获取IE8的流量信息)。

有人可以给我一些关于在哪里看的新想法吗?

1 个答案:

答案 0 :(得分:0)

我认为你握手是正确的。

当浏览器首次连接到服务器时,会创建HTTP会话。其ID作为特殊cookie返回给客户端。例如,对于基于Java的服务器,它是jsessionid。然后客户在产生更多请求时发送厨师。看看这个。你也应该这样做。我希望如果你在第二个请求中发送cookie(获取dll),一切都会有效。

祝你好运。