如何在不设置系统属性的情况下为 XmlRpc 请求使用代理

How to use a Proxy for a XmlRpc-Request without settitng Systemproperties

我需要 运行 XmlRpc-Request 并且我必须使用代理来连接服务器。

连接使用以下代码。

try {
    final XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
    config.setServerURL(new URL(url));
    final XmlRpcClient server = new XmlRpcClient();
    server.setConfig(config);
    Object result = null;
    System.setProperty("https.proxyHost", host);
    System.setProperty("https.proxyPort", port);
    result = server.execute("evatrRPC", params);
    return ((String) result);
}catch (final Exception exception) {
    throw new RuntimeException("JavaClient: " + exception);
}

问题是不允许我更改系统属性。因此,我正在寻找另一种方法来为请求设置代理。

感谢您的帮助

您应该尝试配置客户端的传输工厂:

XmlRpcSun15HttpTransportFactorytransportFactory transportFactory = 
    new XmlRpcSun15HttpTransportFactory(client);

transportFactory.setProxy(proxy); // <= Proxy settings here

client.setTransportFactory(transportFactory);