4

我有下一个代码

    URL targetUrl = ...
    HttpClient client = new HttpClient(connectionManager);
    GetMethod getMethod = new GetMethod();
    getMethod.setPath(targetUrl.getPath());

    HostConfiguration hostConfiguration = getConfiguration(targetUrl) //unknown lib code

    client.executeMethod(hostConfiguration, getMethod);

在某些情况下(在某些主机上)我得到

java.lang.IllegalArgumentException: host parameter is null"

在 client.executeMethod 调用上。

为什么会发生这种情况?

4

3 回答 3

8

错误信息具有误导性...

您必须在主机前面添加协议HTTP://,类似或您想使用的任何内容。根据这篇博客文章,可能还有其他情况会发生这种情况,但setHostConfiguration已被弃用,因此这只适用于遗留代码。

客户端代码应该更早地捕获它,而不是在系统中失败这么深,不正确的数据怎么会走那么远?

于 2014-12-16T10:02:53.760 回答
1

此错误表示您使用的 url 不完整或没有协议。例如 String url ="google.com". 将其更改为String url="http://google.com". 它现在可以工作了

于 2017-12-09T17:16:23.463 回答
0

这是代理 http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk/src/examples/ProxyTunnelDemo.java?view=co的编写示例 在我的情况下,问题是在 hostConfiguration 创建

于 2013-05-04T11:11:29.860 回答