Java HttpClient模拟IE8行为

Java HttpClient模拟IE8行为,java,apache-httpclient-4.x,Java,Apache Httpclient 4.x,Im使用来自HttpComponents项目的ApacheHttpClient。我在其中添加了自定义信任和密钥管理器来处理双向身份验证(我的信任管理器接受所有内容,密钥管理器始终发送相同的客户端证书)。 我发送了以下两个请求: 1.Get/resource.html(此文件使用http equiv=“Refresh”元标记重定向到sth.dll) 2.获取/scripts/sth.dll 我这样做是为了模拟IE8的行为,该行为被用来连接到sth.dll服务(它可以工作)。 如果我无法直接连接到

Im使用来自HttpComponents项目的ApacheHttpClient。我在其中添加了自定义信任和密钥管理器来处理双向身份验证(我的信任管理器接受所有内容,密钥管理器始终发送相同的客户端证书)。
我发送了以下两个请求:
1.Get/resource.html(此文件使用http equiv=“Refresh”元标记重定向到sth.dll)
2.获取/scripts/sth.dll

我这样做是为了模拟IE8的行为,该行为被用来连接到sth.dll服务(它可以工作)。 如果我无法直接连接到sth.dll服务(使用浏览器或httpclient) 我得到500个错误:找不到指定的路径。不幸的是,当我使用上述手动重拨方法时,仍然会出现500个错误 我的问题是,为了让这项服务正常运行,我还需要模仿什么 问题是否可能在于IE重用在一个请求中完成的握手数据,而我的httpclient执行两次握手?如果是,那么如何强制httpclient重用ssl信息

我无法访问服务器,也无法向服务提供商寻求帮助(因为他们只支持通过ie8进行访问)。服务器是IIS/6.0。没有可见的cookies(我使用Fiddler从IE8获取流量信息)。


有谁能给我一些新的想法看看哪里吗?

关于握手,我想你是对的

当浏览器第一次连接到服务器HTTP会话创建时。它的ID作为特殊cookie返回给客户端。例如,对于基于java的服务器,它是
jsessionid
。然后,当客户端产生进一步的请求时,它会发送cookes。过来看。你也应该这样做。我希望如果你能在第二个请求中发送cookies(获取dll),一切都能正常工作


祝你好运。

我没有看到任何饼干在初次请求后发送给我。fiddler和httpclient日志是否可能以某种方式忽略了这些信息?我知道标准会话cookie是稍后创建的-我没有提到这一点,但在第二次连接之后,我需要进行基于表单的身份验证,然后我将从基于ASP的服务器应用程序中获得适当的会话cookie。但在此之前,我需要确保服务准备好与我对话:)