После дополнительного поиска и подсказки ответа Олега я нашел метод HttpMethodParams :: setVirtualHost () .
когда HttpClient форматирует запрос, он всегда создает сам заголовок «Host» непосредственно перед отправкой запроса, поэтому его нельзя переопределить как стандартный заголовок. Но перед тем, как имя хоста для заголовка «Host» будет сгенерировано из URL, HttpClient проверяет объект HttpMethodParams, чтобы узнать, хочет ли пользователь переопределить имя хоста. Это только переопределяет имя хоста, а не порт, поэтому его будет проще использовать, хотя и не так интуитивно, как хотелось бы.
Код для использования может выглядеть следующим образом:
Method m = new GetMethod("http://some-site/some/path");
m.getParams().setVirtualHost("some-other-site");
client.executeMethod(m);
Поскольку мне нравятся лайнеры, это также можно записать так:
client.executeMethod(new GetMethod("http://some-site/some/path") {{
getParams().setVirtualHost("some-other-site"); }});