我对这个“问题”感到生气。
我需要通过http代理进行SOAPConnection而无需身份验证。因为我的网络上没有代理进行测试,所以我决定测试配置假代理URL以查看它是如何失败的。
当我配置“dummyHost”和“8080”并且JUNit不会失败时,我感到惊讶。建立连接并且响应正常。我希望得到一些DNS或超时问题,以检查我的连接是否正在尝试使用代理。
这是我配置这些设置的代码:
/**
* Configure the proxy settings.
*
* @param connection
* The SOAP connection to be configured.
*/
private void configureProxySettings(SOAPConnection connection)
throws Exception {
if (isProxyEnabled()) {
System.setProperty("proxySet", "true");
if (proxyHost == null || "".equals(proxyHost)) {
throw new Exception("No proxy host configured");
}
if (proxyPort == 0) {
throw new Exception("No proxy port configured");
}
if (connection instanceof HttpSOAPConnection) {
HttpSOAPConnection soapConnection = (HttpSOAPConnection) connection;
soapConnection.setProxy(proxyHost, proxyPort);
}
}
}
我得到的SOAPConnection实现是:
com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection
如果我调试这个类(“post”方法)。执行请求时系统属性似乎正常:
System.getProperty("http.proxyHost"); //returns "dummyHost"
System.getProperty("http.proxyPort"); //returns "8080"
System.getProperty("proxySet"); //returns "true"
我做错了什么?如何检查我的代理设置是否有效?