You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xmlrpc-dev@ws.apache.org by Hannes Wallnoefer <ha...@helma.at> on 2002/02/13 16:17:22 UTC

Re: Connections through a HTTP proxy

Yes, I think we should add a method with your code for setting the HTTP 
proxy to XmlRpcClient.

System.setProperty() is a static method and it sets the property for the 
whole runtime, so it won't be possible to set the proxy per client 
instance. I would propose to add a static method

  public static void setHttpProxy (String host, int port, String auth)

to XmlRpcClient.

Hannes


Martin Skopp wrote:

> Thanks for the solution Olivier,
>
> but on the other hand - shouldn't your "XmlRpcClientPlus" class 
> somehow go into the release?
>
> IMHO, XmlRpcClient should offer those proxy-settings via Constructor - 
> if it's not on the "Commit" list for development already, it should 
> urgently go there, 'cause I can imagine it's frequently needed...
>
> Cheers,
> Martin
>
> At 14:05 13.02.2002 +0000, Olivier Sarrat wrote:
>
>>> I'm trying to connect from RPC client to RPC server through a HTTP 
>>> proxy
>>> for 2 reasons:
>>>
>>>         Properties properties = System.getProperties();
>>>         properties.setProperty("proxyHost", "http://localhost");
>>>         properties.setProperty("proxyPort", "8080");
>>>         properties.setProperty("proxySet", "true");
>>>         ...
>>
>> The problem is that you have to deal not only with system properties 
>> in order to go through a firewall. You have to add the login/password 
>> to the connection object itself... which means you have to go inside 
>> the implementation of the client.
>>
>> The way I did it, is by adding so very few lines at the good place of 
>> the XmlRpcClient.Worker :
>>
>> System.setProperty("http.proxySet","true");
>> System.setProperty("http.proxyHost",proxyHost);
>> System.setProperty("http.proxyPort",proxyPort);
>> con.setRequestProperty ("Proxy-Authorization",proxyAuthorization);
>>
>> with proxyAuthorization being :
>> proxyAuthorization = "Basic " + new sun.misc.BASE64Encoder
>> ().encode((user + ":" + password).getBytes());
>>
>> and con, the UrlConnection object.
>
>
>
>
>
> Martin Skopp