HttpClient异常:java.lang.IllegalArgumentException:主机参数为null
我有下一个密码HttpClient异常:java.lang.IllegalArgumentException:主机参数为null,java,apache,http,Java,Apache,Http,我有下一个密码 URL targetUrl = ... HttpClient client = new HttpClient(connectionManager); GetMethod getMethod = new GetMethod(); getMethod.setPath(targetUrl.getPath()); HostConfiguration hostConfiguration = getConfiguration(targetUrl) /
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:主机参数为空“
在client.executeMethod调用中
为什么会发生这种情况?这是代理的一个写示例
在我的例子中,问题是在主机配置创建中错误消息具有误导性 您必须在主机前面添加协议,例如
HTTP://
或任何您想要使用的内容。
根据,这种情况可能发生在其他情况下,但setHostConfiguration
已被弃用,因此这仅适用于旧代码
客户端代码应该更早地捕获它,而不是在系统中失败得如此之深,错误的数据怎么会走得那么远?此错误表示您使用的url不完整或没有协议。例如
String url=“google.com”
。将其更改为String url=”http://google.com“
。它现在可以工作了当我没有写“http://“在我的URL前面。也许你应该试试我调试的代码。原因是主机未设置为HostConfiguration,但设置了proxyHost。所以,我应该在设置proxyHost时设置主机还是这是一个bug?在这种情况下,您不需要主机配置,请参阅本教程: