HttpClient异常:java.lang.IllegalArgumentException:host参数为null

时间:2013-04-30 13:15:17

标签: java apache http

我有下一个代码

    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调用上

为什么会发生这种情况?

3 个答案:

答案 0 :(得分:7)

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

您必须在主机前添加协议,例如HTTP://或您想要使用的任何内容。 根据{{​​3}},可能还有其他情况会发生这种情况,但setHostConfiguration已被弃用,因此这仅适用于遗留代码。

客户端代码应该提前捕获它,而不是在系统中如此深入地失败,不正确的数据怎么会走得那么远?

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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