我有下一个代码
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"
。
为什么会发生这种情况?
答案 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"
。它现在可以使用了