如何使用Jetty HTTP Client v9覆盖默认的Host请求头?

时间:2013-12-06 17:43:34

标签: jetty jetty-9

我正在使用Jetty客户端v9向服务器发出请求。由于各种原因,我指定的服务器地址必须采用实际(数字)IP地址的形式,这对于这个问题并不重要,但我想在主机头中传递假定的主机名(即FQDN,而不是数字) 。我尝试了以下内容:

request = httpClient.newRequest(url);
request.method(HttpMethod.GET);
...
request.header(HttpHeader.HOST, hostHeader);
但是发现这没有效果。实际请求中包含的“主机”标头的值仍然是URL中的值(包含数字IP地址)。我确实验证上面的'hostHeader'变量确实包含了正确的值(我想要的)。

任何人都可以提供一些有关如何覆盖此默认行为的见解吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

您编写的代码是正确的,并且您通过标头指定的值将覆盖URI中指定的值,如预期的那样。

我刚刚提交了一个test case来捕获您描述的用例,并且对我有用。

也许你有一个更复杂的例子可以触发一个极端情况,如果你能编写一个可重复的测试用例,那将会很有帮助。如果是这种情况,请通过Jetty Bugzilla提交问题。