2011-09-20 49 views
1

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

我这样做是为了模拟用于连接到sth.dll服务的IE8行为(和它的工作原理)。 如果我要直接连接到sth.dll服务(使用浏览器或httpclient) 我得到500错误:无法找到指定的路径。不幸的是,当我使用上述方法和手动重定向时,我仍然收到500错误

我的问题是我还需要模拟以获得此服务的工作?
问题可能出在IE浏览器重复使用1次请求中握手的数据并且我的httpclient做了两次握手的事实?如果是,那么如何强制httpclient重用ssl informaton

模拟IE8行为的Java HttpClient

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

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

回答

0

我认为你是正确的握手。

当浏览器第一次连接到服务器HTTP会话创建。它的ID作为特殊的cookie返回给客户端。例如,在基于Java的服务器的情况下,它是jsessionid。然后,客户端在发送进一步请求时发送烹饪。一探究竟。你应该这样做。我希望如果你在第二个请求中发送cookie(获取dll),一切都将起作用。

祝你好运。

+0

我没有看到任何cookie发送给我后,最初的请求。 fiddler和httpclient日志有可能忽略这些信息吗?我知道标准会话cookie是稍后创建的 - 我没有提到这一点,但在第二次连接之后,我需要执行基于表单的身份验证,然后从基于ASP的服务器应用程序中获取适当的会话Cookie。但在此之前,我需要确保该服务已准备好与我交谈:) –